1. 场景描述

今天接着介绍springcloud,今天介绍下springcloud的路由网关-Zuul,外围系统或者用户通过网关访问服务,网关通过注册中心找到对应提供服务的客户端,网关也需要到注册中心进行注册。

2. 解决方案

2.1 官网架构图

先把官网的图在贴一下,便于理解。

说明: gateway负责与外部进行交互,是sprincloud微服务对外的窗口。

2.2 开始撸码

2.2.1 new—>project

2.2.2 选择组件

(1)注册客户端

(2)路由Zuul

next->next ->finish完成创建

2.2.3 代码介绍

说明:Zuul其实也是注册中心的客户端,主要也是3个类或文件。

(1)pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.spc</groupId>
<artifactId>gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gateway</name>
<description>Demo project for Spring Boot</description> <properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>

说明:

springboot两个starter:client与Zuul。

(2)application启动类

package com.spc.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class GatewayApplication { public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
} }

说明:

启动类主要三个标签:@SpringBootApplication、@EnableEurekaClient、@EnableZuulProxy。

(3)application.yml

spring:
application:
name: gateway
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
server:
port: 9000

说明:

主要就一个地址:http://localhost:8761/eureka/,这个是注册中心地址。

如果你觉得文章对你有些帮助,欢迎微信搜索「软件老王」第一时间阅读或交流!
2.2.4 路由访问

(1)启动注册中心、客户端、路由Zuul

(2)通过路由访问client客户端服务

路由地址:http://localhost:9000/client

访问格式:路由地址+客户端服务注册名称,对应上面的application。


更多知识请关注公众号:「软件老王」,IT技术与相关干货分享,回复关键字获取对应干货,java,送必看的10本“武功秘籍”;图片,送100多万张可商用高清图片;面试,送刚毕业就能月薪“20k”的java面试题,软考,送官方pdf书籍与通关论文,后续会不断更新,比如“工具”,“视频“等,已经在整理中。

微服务实战系列(六)-网关springcloud zuul-copy的更多相关文章

  1. 微服务实战(六):选择微服务部署策略 - DockOne.io

    原文:微服务实战(六):选择微服务部署策略 - DockOne.io [编者的话]这篇博客是用微服务建应用的第六篇,第一篇介绍了微服务架构模板,并且讨论了使用微服务的优缺点.随后的文章讨论了微服务不同 ...

  2. go-zero微服务实战系列(十一、大结局)

    本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...

  3. go-zero微服务实战系列(三、API定义和表结构设计)

    前两篇文章分别介绍了本系列文章的背景以及根据业务职能对商城系统做了服务的拆分,其中每个服务又可分为如下三类: api服务 - BFF层,对外提供HTTP接口 rpc服务 - 内部依赖的微服务,实现单一 ...

  4. ASP.NET Core微服务实战系列

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. 前言 这里记录的是个人奋斗和成长的地方,该篇只是一个系列目录和构想 ...

  5. 微服务实战系列--Nginx官网发布(转)

    这是Nginx官网写的一个系列,共七篇文章,如下 Introduction to Microservices (this article) Building Microservices: Using ...

  6. Chris Richardson微服务实战系列

    微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...

  7. 微服务实战系列(六)-网关springcloud zuul

    1. 场景描述 今天接着介绍springcloud,今天介绍下springcloud的路由网关-Zuul,外围系统或者用户通过网关访问服务,网关通过注册中心找到对应提供服务的客户端,网关也需要到注册中 ...

  8. 微服务实战系列(七)-网关springcloud gateway

    1. 场景描述 springcloud刚推出的时候用的是netflix全家桶,路由用的zuul,但是据说zull1.0在大数据量访问的时候存在较大性能问题,2.0就没集成到springcloud中了, ...

  9. 微服务实战系列(八)-网关springcloud gateway自定义规则

    1. 场景描述 先说明下项目中使用的网关是:springcloud gateway, 因需要给各个网关服务系统提供自定义配置路由规则,实时生效,不用重启网关(重启风险大),目前已实现:动态加载自定义路 ...

  10. 微服务实战系列(四)-注册中心springcloud alibaba nacos

    1.场景描述 因要用到微服务,关于注册中心这块,与同事在技术原型上做了讨论,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注册中心对比,以前用的 ...

随机推荐

  1. Gitlab运维操作

    部署 安装Postfix以发送通知邮件 yum install postfix 将postfix服务设置成开机自启动 systemctl enable postfix 启动postfix system ...

  2. 为政务单位免费提供IP地址https证书—JoySSL

    JoySSL作为知名的证书颁发机构(CA),确实为政务单位提供了IP地址HTTPS证书的免费测试证书服务.以下是对此服务的详细介绍: 一.证书类型与特点 证书类型:JoySSL为政务单位提供了专为IP ...

  3. Python中dict支持多个key的方法

    在Python中,字典(dict)是一种非常强大的数据结构,它允许我们通过键(key)来存储和检索值(value).有时候,我们可能想要根据多个键来检索或操作字典中的数据.虽然Python的字典不直接 ...

  4. Go获取文件路径,文件名,后缀

    import ( "fmt" "os" "path/filepath" "path" ) files := " ...

  5. 读书笔记-C#8.0本质论-06

    18.4 并行迭代 如果一个对CPU资源占用较大的计算可以很容易被分割为多个彼此完全独立的部分以任意顺序执行,则要使用并行循环.示例如下: using System; using System.Col ...

  6. 利用Java heap dump查找、分析问题

    http://autumnice.blog.163.com/blog/static/555200201143163723346/?fromdm&fromSearch&isFromSea ...

  7. Maven多模块项目 eclipse热部署 Maven项目实现 tomcat热部署

    Maven 多模块项目在eclipse下面热部署,即你可以体验下无论你修改整个项目里面的任何模块的代码,都不需要用maven打包就可以看到效果, 1.首先准备好创建一个maven多项目的代码,准备好一 ...

  8. HTML5 A链接

    1.基本使用 a标签常用属性: 属性名 说明 href 规定链接的目标 URL target 已什么形式打开这个连接 target属性有以下几个值 属性名 说明 _self 默认,当前页面跳转 _bl ...

  9. TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面

    前言 前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用.但在日常使用过程中,命令行使用还是不太方便的,因此今天介绍一下如何使用 ...

  10. C#中XML文件读取

    概述 首先程序访问且操作xml文件有两种模型:DOM(文档对象模型).流模型. DOM:允许编辑和更新文档,可随机访问文档中的数据,可使用XPath查询,但是必须要一次性将文档加载在内存中,对于大型的 ...