接著前一篇的文章Zuul基本路由配置(二)
1.功能前綴
配置路由規(guī)則的時(shí)候,我們可以配置一個(gè)統(tǒng)一的代理前綴。
zuul:
routes:
client-a:
path: /client/**
serviceId: client-a
prefix: /pre
訪問的時(shí)候就要加上這個(gè)前綴了,如:http://localhost:8888/pre/client/user/add?id=1。
2.服務(wù)屏蔽與路徑屏蔽
有時(shí)候?yàn)榱吮苊庥行┓?wù)或者路徑入侵,可以將它們屏蔽掉
zuul:
ignored-services: client-b #忽略服務(wù),防止服務(wù)入侵
ignored-patterns: /**/div/** #忽略接口,屏蔽接口
prefix: /pre
routes:
client-a: /client/**
3.敏感頭信息
在構(gòu)建系統(tǒng)的時(shí)候,使用HTTP的header傳值是十分方便的,協(xié)議的一些認(rèn)證信息默認(rèn)也在header,比如cookie,或者習(xí)慣把基本認(rèn)證通過base64加密后放在Authorization里面。在我們系統(tǒng)內(nèi)部系統(tǒng)沒有什么問題,但是如果系統(tǒng)要和外部系統(tǒng)打交道,就可能會(huì)出現(xiàn)這些信息 的泄露。在zuul的配置里可以指定敏感頭,切斷它和下層服務(wù)的交互。
zuul:
routes:
client-a:
path: /client/**
sensitiveHeaders: Cookie,Set-Cookie,Authorization
serviceId: client-a
4.重定向問題
重定向后返回之前的host
zuul:
routes:
client-a: /client/**
add-host-header: true
5.重試機(jī)制
生產(chǎn)環(huán)境中,由于各種原因,可能會(huì)使一次請(qǐng)求偶然失敗,考慮到某些業(yè)務(wù)的體驗(yàn),不能通過有感知的操作來觸發(fā),這時(shí)候就會(huì)用到重試機(jī)制了,Zuul可以配合Ribbon(默認(rèn)個(gè)集成)來做重試。
zuul:
retryable: true #開啟重試
ribbon:
MaxAutoRetries: 1 #同一個(gè)服務(wù)重試的次數(shù)(除去首次)
MaxAutoRetriesNextServer: 1 #切換相同服務(wù)數(shù)量
當(dāng)然,此功能要慎用,有一些接口要保證冪等性,一定要做好相關(guān)工作。