什麼是Spring Cloud Netflix Zuul?html
怎麼用 Spring Cloud Netflix Zuul?git
Zuul is a JVM based router and server side load balancer by Netflix.
Zuul 是一個基於JVM的路由器和服務端負載均衡器,它默認包含Ribbon和Hystrix.它其實就是一個API Gateway的部分實現,詳見博文
爲了解決如下問題的組件:github
身份驗證spring
壓力測試bootstrap
動態路由segmentfault
服務遷移安全
安全app
靜態響應處理負載均衡
流量控制ide
Load Shedding
Canary Testing
百說不如一run,構造一個例子來實現,此次的例子很簡單,就是啓動一個sentence的Zuul代理,經過Zuul的端口訪問指定word服務.
基於實戰四的例子
正常啓動Eureka Server
正常啓動Eureka Client,此時咱們這裏只啓動一個noun服務
爲Eureka Sentence添加Pom依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency>
在Eureka Sentence的Application加上@EnableZuulProxy註解
在Eureka Sentence的Application加上如下代碼實現ETag功能
@Bean public Filter shallowEtagHeaderFilter() { return new ShallowEtagHeaderFilter(); }
Eureka Sentence的bootstrap.yml以下
spring: application: name: sentence server: port: 8080 eureka: client: service-url: defaultZone: http://127.0.0.1:8010/eureka/
打開http://127.0.0.1:8080/noun就能夠訪問到相應的noun服務(默認的Zuul接口轉換就是/serviceId)
特別感謝 kennyk65
Spring Cloud 中文用戶組 31777218
Spring-Cloud-Config 官方文檔-中文譯本 (本人有參與,哈哈)
Spring Cloud Netflix 官網文檔-中文譯本
本文實例github地址 mmb-zuul