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中獲取其餘微服務信息