zuul使用中的一些問題

1.token不向后傳

微服務(wù)設(shè)計中,header中的信息(Cookie/Set-Cookie/Authorization)屬于附加鑒權(quán)相關(guān),
而統(tǒng)一鑒權(quán)屬于網(wǎng)關(guān)工作范疇,所以請求經(jīng)過網(wǎng)關(guān)后,header信息不會繼續(xù)向后傳.最小知道原則

想解決 配置文件中 sensitive-headers:置空即可

2.項目改造過程中,路由問題

原有服務(wù)域名old.com
重構(gòu)服務(wù)域名new.com
將app調(diào)用old.com的請求轉(zhuǎn)發(fā)到 新服務(wù) new.com

解決辦法:

1.zuul網(wǎng)關(guān)中,新老url做映射
2.nginx中進行匹配
3.zuul中自定義filter

3.動態(tài)路由(流量定向分發(fā))問題

根據(jù)特定規(guī)則,將不同用戶請求分發(fā)到不同服務(wù)中去,
思路參考:《灰度發(fā)布與ABtest》

4.網(wǎng)關(guān)一般作用:

分發(fā)服務(wù)
鑒權(quán)
過濾請求
監(jiān)控
(動態(tài))路由
限流

  • 流量峰值估算,28原則
    80%的流量集中在在20%的時間中

5.zuul四種過濾器

pre 在請求被路由之前調(diào)用,可實現(xiàn)鑒權(quán)、選擇微服務(wù)、日志、限流
route在請求路由到微服務(wù)時調(diào)用,利用httpClient或ribbon實現(xiàn)
post在調(diào)用微服務(wù)之后調(diào)用,將相應返回客戶端,可用于添加heder、記錄日志
error 其它階段發(fā)生異常時

6.filter實現(xiàn)過程

1.繼承zuulfilter
2.shoudFilter() true:執(zhí)行當前filter false:不執(zhí)行
3.run()filter具體業(yè)務(wù)邏輯
4.filterType:pre、route、post、error
5.order:數(shù)字越小,執(zhí)行順序越靠前

7.zuul中404問題

zuul中地址來源:Eureka中獲取/配置文件中獲取,
如果都找不到就會404

8.zuul容錯

實現(xiàn)FallbackProvider

9.過濾器開關(guān)

shoudFilter(),中信息存儲到redis或者配置中心,
不需要重啟服務(wù)可完成過濾器的開啟和關(guān)閉

  • sendZuulResponse(false)將短路下一類型filter,
    但是同類型filter不受影響,如果需要短路同類型,需要自行在同類型filtershoudFilter()中對sendZuulResponse進行判斷

網(wǎng)關(guān)限流

  • 通過filter+google.guava令牌桶進行限流
  • 微服務(wù)自身也應該有限流,也可以通過filterfilter+google.guava限流,
    也可采用filter+Sentinel或者@SentinelResource注解方式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容