SpringCloud系列之Zuul路由網關配置

前言:

       網關爲微服務提供了統一的入口,同時,將外部請求和服務隔離起來,保障後臺服務的安全性,進行權限校驗,拒絕不合法請求,將前端的請求動態的路由到服務集羣。

一、網關的作用
      1、 權限控制和安全性--爲每個請求提供身份認證,並拒絕不滿足條件的請求。        
 
      2、預警和監控--跟蹤前端有意義的請求和統計數據,以便我們準確瞭解生產環境運行狀況。
 
      3、動態路由--根據需求將請求動態地路由到不同的後端集羣。
 
      4、 壓力測試--逐漸增大到集羣的流量,以便進行性能評估。
 
      5、負載均衡--爲每種類型的請求分配容量並丟棄超過限額的請求。
 
      6、靜態資源處理--直接在Zuul處理靜態資源並響應,而並非轉發這些請求到內部集羣中。
 
      7、多區域彈性--實現跨AWS區域請求路由,擴大了ELB的使用範圍,並使前端服務更接近我們的成員。

二、配置路由

1、新建項目,並添加依賴

	<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-zuul</artifactId>
	</dependency>

2、添加配置文件,將zuul註冊到服務中心,zuul會自動尋找服務中的可用服務

server:
  port: 9527
 
spring:
  application:
       #網關服務名稱
    name: mircoservice-zuul-getway

 #將客戶端註冊到服務中心    
eureka:
  client:
    service-url:
      defaultZone: http://eureka01.com:7001/eureka/,http://eureka02.com:7002/eureka/,http://eureka03.com:7003/eureka/ 
      
  instance:
    instance-id: getway-9527.com
    prefer-ip-address: true
    
    
    
zuul:
#忽略的微服務,即請求這些微服務不通過網關
#  ignored-services:
#   - "*"
#  - mircoservice-dept
  routes:
    #代理的微服務ID
    mydept.serviceId: mircoservice-dept
    #自定義路徑
    mydept.path: /mydept/**
    
    
      
  

3、在啓動類上添加註解@EnableZuulProxy

4、分別啓動註冊中心和網關,這時候請求路徑變成

此外還可以配置統一的域名,配置負載均衡。

三、其他配置

       zuul還提供了一系列過濾功能

@Component
public class MyFilter extends ZuulFilter {

	public boolean shouldFilter() {
		// 默認爲false,表示不開啓過濾器,需要改爲true
		return false;
	}

	public Object run() {
		// 過濾器邏輯
		return null;
	}

	@Override
	public String filterType() {
		
		//過濾器類別
//		Zuul提供4個級別的過濾器:
//		pre:可以在請求被路由之前調用
//		route:在路由請求時候被調用
//		post:在route和error過濾器之後被調用
//		error:處理請求時發生錯誤時被調用

		return "pre";
	}

	@Override
	public int filterOrder() {
		// 執行順序爲1,值越小越先執行
        return 1;
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章