Zuul包含了对请求的路由和过滤的两个最主要的功能,其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础;而过滤功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础,Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中得到其余微服务的消息,也即之后的访问微服务都是经过zuul跳转后得到。git
注:github
①Zuul服务最终仍是会注册到Eurekaspring
②提供代理、路由、过滤三大功能app
本项目地址:https://github.com/Simple-Coder/microservice-demo-studyide
源码参考地址:https://github.com/Netflix/zuul/wiki/Getting-Started-2.0微服务
<!--zuul相关--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency> <!--eureka相关--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
server:
port: 9527
spring:
application:
name: microservice-zuul-gateway
eureka:
client:
service-url:
defaultZone: http://eureka8001:8001/eureka,http://eureka8002:8002/eureka,http://eureka8003:8003/eureka
instance:
instance-id: gateway-9527
prefer-ip-address: true
info:
app.name: microservice-zuul-gateway
company.name: www.microservice.com
build.artifactId: $project.artifactId$
build.version: $project.version$
至此,zuul的基本配置完成,接下来就是zuul路由访问映射规则测试
咱们上边的测试:http://myzuul.com:9527/microservice-provider/provider/get/1001,红色部分使用的是真实的微服务名称,在实际生产中确定不会暴露出来的。因此须要对网关的配置文件进行修改完成如下功能:ui
以上两个地址此时均可以访问成功!违反了单入口的原则,因此application.yml文件还需添加如下内容! url
此时,微服务名称对外不暴露,只提供对外访问的部分url,经过网关配置完成!spa
zuul模块相对其余模块来讲,helloworld入门比较简单,作了如下小总结:
①zuul主要提供路由转发和过滤功能
②zuul最终仍是会注册到eureka,从eureka中获取其余微服务信息