Zuul閘道器配置and案例
阿新 • • 發佈:2019-01-14
目錄
幹什麼的?
所有請求經過閘道器--安全監控
Zuul加入之後的架構
閘道器會幫著路由到叢集
建立閘道器模組
引入jar包
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies>
開啟閘道器配置user-zuul~接收所有請求
閘道器的application.yaml
網管怎麼把請求分發到伺服器---配置檔案中對映路徑
path意思時攔截這個開頭的所有請求
訪問方式
總結圖片
此時只需要閘道器 服務 註冊中心 不需要服務呼叫者
訪問叢集,自動負載均衡,如何實現?
通過服務名進行訪問底層自動實現負載---zuul面向服務
1 引入座標 (把閘道器作為服務的呼叫者)
添加註解@EnableDiscoveryClient--此時既是閘道器又是服務的呼叫者
2 新增Eureka配置 獲取服務資訊
如何通過服務名字訪問服務
過濾器ZuulFilter
public abstract ZuulFilter implements IZuulFilter{
abstract public String filterType();
abstract public int filterOrder();
boolean shouldFilter();// 來自IZuulFilter
Object run() throws ZuulException;// IZuulFilter
}
-
shouldFilter
:返回一個Boolean
-
run
:過濾器的具體業務邏輯。 -
filterType
:返回字串,代表過濾器的型別。包含以下4種:-
pre
:請求在被路由之前執行 -
routing
:在路由請求時呼叫 -
post
:在routing和errror過濾器之後呼叫 -
error
:處理請求時發生錯誤呼叫
-
-
filterOrder
:通過返回的int值來定義過濾器的執行順序,數字越小優先順序越高。
========================================================================
圖解:整個服務流程是先走prefilter,再走路由過濾器routingfliter,再走orginserver伺服器,再走postfilter返回給使用者,出現錯誤走error過濾器
customfilter是自定義過濾器
負載均衡和熔斷都整合閘道器來做
配置閘道器的application
===========================================================