功能角色:
在SpringCloud中充當服務(wù)網(wǎng)關(guān)的角色,它包含了鑒權(quán)、流量轉(zhuǎn)發(fā)、請求統(tǒng)計等等功能
核心:
Filter是Zuul的核心辛臊,用來實現(xiàn)對外服務(wù)的控制。Filter的生命周期有4個房交,分別是“PRE”彻舰、“ROUTING”、“POST”候味、“ERROR”刃唤,整個生命周期可以用下圖來表示。
PRE:?這種過濾器在請求被路由之前調(diào)用白群。我們可利用這種過濾器實現(xiàn)身份驗證尚胞、在集群中選擇請求的微服務(wù)、記錄調(diào)試信息等帜慢。
ROUTING:這種過濾器將請求路由到微服務(wù)笼裳。這種過濾器用于構(gòu)建發(fā)送給微服務(wù)的請求,并使用Apache HttpClient或Netfilx Ribbon請求微服務(wù)粱玲。
POST:這種過濾器在路由到微服務(wù)以后執(zhí)行躬柬。這種過濾器可用來為響應(yīng)添加標準的HTTP Header、收集統(tǒng)計信息和指標密幔、將響應(yīng)從微服務(wù)發(fā)送給客戶端等楔脯。
ERROR:在其他階段發(fā)生錯誤時執(zhí)行該過濾器撩轰。 除了默認的過濾器類型胯甩,Zuul還允許我們創(chuàng)建自定義的過濾器類型。例如堪嫂,我們可以定制一種STATIC類型的過濾器偎箫,直接在Zuul中生成響應(yīng),而不將請求轉(zhuǎn)發(fā)到后端的微服務(wù)皆串。
自定義Filter:
根據(jù)場景需要,我們也可以自定義一些filter,穿插在整個過程的某個階段,只需要繼承ZuulFilter,并且覆蓋里面的4個方法就可以了.
配置:
application.properties中配置:
# 禁用一些Filter的配置:
zuul.FormBodyWrapperFilter.pre.disable=?true
# 路由的配置:
????# 配置需要被跳轉(zhuǎn)的地址淹办,/user/**的網(wǎng)址將被分發(fā)
zuul.routes.user.path=/user/**
# 重定向的地址:
zuul.routes.user.url=http://127.0.0.1:8081/