1.什麼是Zuul web
zuul 是netflix開源的一個API Gateway 服務器, 本質上是一個web servlet應用。 spring
熟悉Nginx的朋友能夠把zuul理解爲一個Nginx,我的認爲2者主要在使用區別上,Zuul主要是處理與服務之間調用的,而Nginx主要處理與服務器之間的調用和一些靜態文件的訪問支持。api
2.搭建Zuul應用服務器
引入maven庫app
compile 'org.springframework.cloud:spring-cloud-starter-zuul:1.4.4.RELEASE' compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
配置application.propertiesmaven
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
@EnableDiscoveryClient
3.測試url
這樣Zuul的網關服務就啓動了。咱們來測試下spa
咱們方便再應用A,和應用B實現一個接口 贊成返回 2個應用的端口.net
方即是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的配置說明
這有一篇比較全的配置說明文章,我就不重複寫了