1. 程式人生 > >(五)api閘道器服務 zuul-路由

(五)api閘道器服務 zuul-路由

路由是微服務架構中必須的一部分,比如,“/” 可能對映到你的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也實現了負載均衡)