【Way to Spring Cloud 7】Spring Cloud Zuul

Spring Cloud Zuul

什麼是Zuul

Zuul 包含了對請求路由和校驗過濾兩個最主要的功能:

  • 其中路由功能負責將外部請求轉發到具體的微服務實例上,是實現外部訪問統一入口的基礎:
    客戶端請求網關/api/product,通過路由轉發到 product 服務
    客戶端請求網關/api/order,通過路由轉發到 order 服務
  • 過濾功能則負責對請求的處理過程進行干預,是實現請求校驗等功能的基礎

Zuul 和 Eureka 進行整合,將 Zuul 自身註冊爲 Eureka 服務治理中的服務,同時從 Eureka 中獲得其他微服務的消息,也即以後的訪問微服務都是通過Zuul跳轉後獲得。

Zuul 路由功能實戰

新建 microservice-cloud-10-zuul-gateway-7001
配製pom.xml文件
在這裏插入圖片描述
配置application.yml文件
在這裏插入圖片描述
配置啓動類
在這裏插入圖片描述
功能測試,訪問 http://localhost:8001/product/get/1等同於訪問http://localhost:7001/microservice-product/product/get/1

路由轉發映射配置

在 application.yml 配置文件中追加部分
在這裏插入圖片描述
重啓zuul路功能,只要接收到/product開頭的路徑請求,都會轉發到microservice-cloud-08-provider-product-hystrix-8001 服

Zuul 過濾器實戰

自定義過慮器需要繼承 ZuulFilter,ZuulFilter是一個抽象類,需要覆蓋它的4個方法,如下:
filterType:返回字符串代表過濾器的類型,返回值有:
pre:在請求路由之前執行
route:在請求路由時調用
post:請求路由之後調用, 也就是在route和errror過濾器之後調用
error:處理請求發生錯誤時調用

filterOrder:此方法返回整型數值,通過此數值來定義過濾器的執行順序,數字越小優先級越高。
shouldFilter:返回Boolean值,判斷該過濾器是否執行。返回true表示要執行此過慮器,false不執行。
run:過濾器的業務邏輯

自定義過濾器 LoginFilter
在這裏插入圖片描述
功能測試,不攜帶token時候返回錯誤,攜帶token可以正常請求

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