分布式04-Spring Cloud Zuul Api网关 一

China☆狼群 提交于 2020-04-06 16:42:03

1.什么是Zuul  

zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用。 

熟悉Nginx的朋友可以把zuul理解为一个Nginx,个人认为2者主要在使用区别上,Zuul主要是处理与服务之间调用的,而Nginx主要处理与服务器之间的调用和一些静态文件的访问支持。

2.搭建Zuul应用

引入maven库

compile 'org.springframework.cloud:spring-cloud-starter-zuul:1.4.4.RELEASE'
compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')

配置application.properties

server.port= 12003
eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone= http://${eureka.instance.hostname}:12000/eureka/#注册到eureka
eureka.client.healthcheck.enabled=true
spring.application.name=eureka-Zuul

zuul.routes.eureka-server.path=/public/*#拦截转发
zuul.routes.eureka-server.service-id=eureka-server#转发的服务ID也可以用URL
#zuul.routes.eureka-server.url=localhost:12000 #或者直接使用 URL转发,类是Nginx service-id与url   2选用1
zuul.routes.eureka-server.strip-prefix=false #是否去除前缀 也就是public
zuul.ignored-patterns=/api/#不拦截转发的规则

Application启动添加注解

@EnableZuulProxy

3.测试

这样Zuul的网关服务就启动了。我们来测试下

我们方便再应用A,和应用B实现一个接口 同意返回 2个应用的端口

方便是12000,12001 然后通过我们的Zuul网关来调用

启动完查看Eureka

调用 http://localhost:12003/public/getPort  通过Zuul服务 调用 eureka-server 2个应用,对应的配置是下面2个

zuul.routes.eureka-server.path=/public/*

zuul.routes.eureka-server.service-id=eureka-server

调用结果发现Zuul网关会再应用A和应用B进行轮询调用

4.关于Zuul的配置说明

这有一篇比较全的配置说明文章,我就不重复写了

https://blog.csdn.net/qq_29233293/article/details/84891865

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!