(五)api閘道器服務 zuul-路由
阿新 • • 發佈:2018-11-26
路由是微服務架構中必須的一部分,比如,“/” 可能對映到你的WEB程式上,”/api/users
“可能對映到你的使用者服務上,“/api/shop”可能對映到你的商品服務商。(註解:我理解這裡的這幾個對映就是說通過Zuul這個閘道器把服務對映到不同的服務商去處理,從而變成了微服務!)
通過Zuul我們可以完成以下功能:
- 動態路由
- 監控與審查
- 身份認證與安全
- 壓力測試: 逐漸增加某一個服務叢集的流量,以瞭解服務效能;
- 金絲雀測試
- 服務遷移
- 負載剪裁: 為每一個負載型別分配對應的容量,對超過限定值的請求棄用;
- 靜態應答處理
構建閘道器
在Idea裡,新建專案,選擇Spring initializer.
下面的pom
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
</dependency>
</dependencies>
配置properties檔案引數;
server.port=8887 spring.application.name=zuul-proxy eureka.client.service-url.defaultZone=http://localhost:8882/eureka
啟動類如下:
@EnableZuulProxy // 啟動Zuul的路由服務 @SpringBootApplication public class SpringCloundZuulDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringCloundZuulDemoApplication.class, args); } }
程式碼基本編寫完成,下面我們來啟動專案;Eureka,service-hello(兩個 + 一個例項),最後啟動zuul-proxy;
瀏覽器輸入:(可見,zuul也實現了負載均衡)