關(guān)于SpringCloud灰度發(fā)布的實(shí)現(xiàn)
一、springcloud灰度發(fā)布思路
- 注冊(cè)中心:不解釋了
- 根據(jù)用戶(hù)路由:user id關(guān)聯(lián)路由標(biāo)簽
- 區(qū)分服務(wù)實(shí)例:給服務(wù)實(shí)例打標(biāo)簽 eureka.instance.metadata-map.key=value
- 負(fù)載均衡ribbon:修改路由規(guī)則,根據(jù)用戶(hù)標(biāo)簽路由到對(duì)應(yīng)服務(wù)
二、ribbon大致原理
- RibbonAutoConfiguration 是起始點(diǎn),會(huì)在spring啟動(dòng)時(shí)被掃起來(lái),實(shí)例化SpringClientFactory。
- SpringClientFactory 是獲取Ribbon相關(guān)實(shí)例或配置的工廠類(lèi),可以獲取指定服務(wù)的ILoadBalancer和IConfig等,繼承自NamedContextFactory。
- NamedContextFactory 維護(hù)了每個(gè)服務(wù)相關(guān)的上下文AnnotationConfigApplicationContext;上下文在第一次調(diào)用時(shí)被創(chuàng)建,并注冊(cè)、裝配相關(guān)類(lèi)、接口;外界獲取相關(guān)類(lèi)、接口就是從上下文中拿的。
- RibbonClientConfiguration 用來(lái)實(shí)例化自定義接口。
- XXXLoadBalancer 負(fù)責(zé)調(diào)用IRule選擇Server,并啟動(dòng)定時(shí)任務(wù)更新ServerList列表。
- ZoneAvoidanceRule是默認(rèn)的IRule,先利用XXXPredicate進(jìn)行過(guò)濾,然后在從過(guò)濾的結(jié)果中選擇。
三、最終代碼實(shí)現(xiàn)
1.在目標(biāo)服務(wù)上配置灰度標(biāo)簽。
2.將想要的灰度標(biāo)簽保存到threadlocal里,注意有線程池的情況。
3.自定義路由規(guī)則IRule以及預(yù)判規(guī)則Predicate,將不符合標(biāo)簽的服務(wù)過(guò)濾掉掉,然后從剩下的服務(wù)中選一個(gè)。
4.自定義RibbonClientConfiguration,指定用步驟3的自定義IRule。
到此這篇關(guān)于關(guān)于SpringCloud灰度發(fā)布的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringCloud灰度發(fā)布內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring Cloud 優(yōu)雅下線以及灰度發(fā)布實(shí)現(xiàn)
- SpringCloud實(shí)現(xiàn)灰度發(fā)布的方法步驟
- springcloud+nacos實(shí)現(xiàn)灰度發(fā)布示例詳解
- SpringCloud灰度發(fā)布的設(shè)計(jì)與實(shí)現(xiàn)詳解
- SpringCloud的全鏈路灰度發(fā)布方案詳解
- Spring?Cloud實(shí)現(xiàn)灰度發(fā)布的示例代碼
- SpringCloud實(shí)現(xiàn)全鏈路灰度發(fā)布的示例詳解
- Spring Cloud Gateway實(shí)現(xiàn)灰度發(fā)布方案
相關(guān)文章
Spring boot 配置多個(gè)redis的方法示例
這篇文章主要介紹了Spring boot 配置多個(gè)redis的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09SpringDataJpa寫(xiě)原生sql遇到的問(wèn)題及解決
這篇文章主要介紹了SpringDataJpa寫(xiě)原生sql遇到的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Spring boot 數(shù)據(jù)源未配置異常的解決
這篇文章主要介紹了Spring boot 數(shù)據(jù)源未配置異常的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08微信公眾號(hào)開(kāi)發(fā)之回復(fù)圖文消息java代碼
這篇文章主要為大家詳細(xì)介紹了微信公眾號(hào)開(kāi)發(fā)之回復(fù)圖文消息java代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Java中tomcat memecached session 共享同步問(wèn)題的解決辦法
這篇文章主要介紹了Java中tomcat memecached session 共享同步問(wèn)題的解決辦法的相關(guān)資料,需要的朋友可以參考下2015-10-10