天天看點

聊一下SpringCloud Zuul的核心構造

Zuul提供而來哪些網關功能

  1. Zuul元件給微服務架構提供了統一的API入口,并且根據不同過濾器處理API,最後傳到後端業務。
  2. Zuul元件主要還是提供了過濾機制、動态路由的功能。
  3. Zuul元件還提供了效驗過濾、服務聚合、服務容錯等等的功能。
  4. 因為Zuul自動內建了Ribbon和Hystrix,是以Zuul元件生來就自帶負載均衡和服務容錯的能力。

Zuul的工作核心是什麼?

如果問Zuul的工作核心是什麼?那肯定會得到異口同聲的答案,那就是過濾器,Zuul内部代碼實作了多種過濾器類型,以支援網關工作。

Zuul提供了哪些類型的過濾器類型

pre : 可以在請求被路由之前被調用。

此過濾器類型更适用于身份認證的場景,當認證成功後,放進行下一步的操作。

route : 在路由請求時被調用。

适用于灰階釋出場景,在将要通路路由的時候同時去做一些自定義的邏輯,以滿足相應的奇奇怪怪的需求。

post : 在 route 和 error 過濾器之後被調用。

此類過濾器将請求路由到達具體的服務之後執行。比較适用于需要添加響應頭,記錄響應日志等應用場景。

error : 處理請求時發生錯誤時被調用。

在執行過程中發送錯誤時會進入 error 過濾器,可以用來統一記錄錯誤資訊,以便于後期解決問題。

Zuul有哪些重點配置

我們直接在Spring Cloud Zuul子產品中引入相關jar包,當然需要使用@EnableZuulProxy注解修飾Application類了。

配置Zuul通路api路徑:

zuul.routes.eureka-application-service.path=/api/**      

配置Zuul服務名稱:

zuul.routes.eureka-application-service.serviceId=service-zuul-name      

配置可忽略服務:

zuul.ignored-services=service-1      

配置Zuul路由字首路徑:

zuul.prefix=/zuul