概要
什麼是Spring Cloud Netflix Zuul?
怎麼用 Spring Cloud Netflix Zuul?
什麼是Spring Cloud Netflix Zuul?
Zuul is a JVM based router and server side load balancer by Netflix.
Zuul 是一個基於JVM的路由器和服務端負載均衡器,它默認包含Ribbon和Hystrix.它其實就是一個API Gateway的部分實現,詳見博文
爲了解決以下問題的組件:
-
身份驗證
-
壓力測試
-
動態路由
-
服務遷移
-
安全
-
靜態響應處理
-
流量控制
-
Load Shedding
-
Canary Testing
怎麼用Spring Cloud Netflix Zuul?
百說不如一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