SpringCloud学习记录——ZUUL路由网关

点我点我:项目github地址

1、简介。

路由是微服务体系结构的一个组成部分。例如 / 可以映射到您的Web应用程序,/api/users映射到用户服务,/api/shop映射到商店服务。Zuul是Netflix的基于JVM的开发的路由和服务器端负载均衡器。总之一句话就是:“配置了路由网关,即可将微服务的接口统一通过网关请求、过滤”。

2、ZUUL项目搭建。

新建maven module,命名为micro-service-zuul,父项目指向micro,打包方式选择jar,新建方式选择“maven-archetype-webapp”。

pom.xml引入SpringBoot基础包、spring-cloud-starter-eureka、javax.servlet-api,pom.xml依赖包导入、引入ZUUL网关所需依赖spring-cloud-starter-zuul、spring-cloud-zuul-ratelimit,如下图


在src/main/java目录下新建com.xiudoua.study.micro包,在此包下新建一个ZuulApplication.java类,main方法添加@SpringCloudApplication(注:并非为@SpringBootApplication)、@EnableZuulProxy、如下图


在src/main/resources目录下新建application.properties文件(此处可新建application.properties或者application.yml文件做配置均可),文件结构如下:

#标注服务名称
spring.application.name=zuul
#标注服务端口号
server.port=8089

#配置指向Eureka注册中心的地址
eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/

#ZUUL指向服务配置
zuul.routes.apiAdd.path=/apiAdd/**
zuul.routes.apiAdd.serviceId=add
zuul.routes.apiMultiply.path=/apiMultiply/**
zuul.routes.apiMultiply.serviceId=multipl
zuul.routes.apiFeign.path=/apiFeign/**
zuul.routes.apiFeign.serviceId=feign

#显示注册客户端主机和端口号
spring.cloud.client.ipAddres=http://localhost/
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${spring.application.name}:${spring.application.instance_id:${server.port}}  
eureka.instance.preferIpAddress=true

注:如上application.properties文件

zuul.routes.apiAdd.path=/apiAdd/**
zuul.routes.apiAdd.serviceId=add
部分代码标注,代表通过zuul网关访问注册中心的add服务,一律以apiAdd匹配。例如add服务本身访问路径为:http://localhost:8083/addTwoNum?a=12&b=5,则通过网关访问即可为:http://localhost:8089/apiAdd/addTwoNum?a=12&b=5 。

3、通过zuul访问service-add、service-multipl、service-feign。

将micro-eureka、micro-service-add、micro-service-multipl(打包并复制修改为multipl.jar、multipl2.jar)、micro-service-feign、micro-service-zuul打jar包放置在E:/jar/0407,如下图:


分别以dos命令(java -jar ***.jar)启动eureka.jar、zuul.jar、add.jar、multipl.jar、multipl2.jar、feign.jar。

预计通过zuul测试访问结构如下:

微服务 直接访问 zuul访问 返回结果
add localhost:8083/addTwoNum?a=2&b=5 localhost:8089/apiAdd/addTwoNum?a=2&b=5

公用调用a+b方法返回

结果为:7

multipl

localhost:8084/multiplyTwoNum?a=2&b=5

者localhost:8085/multiplyTwoNum?a=2&b=5

localhost:8089/apiMultipl/addTwoNum?a=2&

b=5

访问主体:http://localhost

端口:8084 计算结果:10

或者

访问主体:http://localhost

端口:8085 计算结果:10

feign http://localhost:8087/multiplyTwoNum?a=2&b=5

http://localhost:8089/apiFeign/multiplyTwoNum‘

?a=2&b=5

随机放回:

访问主体:http://localhost

端口:8084/8085 计算结果:10

访问结构图如下:


Eureka注册中心服务注册如下图:


分别通过http://localhost:8089/apiAdd/addTowNum?a=2&b=5、http://localhost:8089/apiFeign/multiplTowNum?a=2&b=5、“http://localhost:8089/apiFeign/multiplTowNum?a=2&b=5”即可测试通过ZUUL网关的访问。

猜你喜欢

转载自blog.csdn.net/u012459871/article/details/79839024