91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud Zuul路由規則動態更新的示例分析

發布時間:2021-09-03 10:27:55 來源:億速云 閱讀:129 作者:小新 欄目:編程語言

這篇文章主要介紹了Spring Cloud Zuul路由規則動態更新的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

背景

Spring Cloud Zuul 作為微服務的網關,請求經過zuul路由到內部的各個service,由于存在著新增/修改/刪除服務的路由規則的需求,zuul的路由規則的動態變更功能 提供了

無須重啟zuul網關,即可實時更新,現有如下幾種方式:

一、基于refresh + config-server事件動態刷新

(1)spring boot 集成了spring actuator 提供的 refresh功能后,在congfig-server的git配置倉庫中新增一個zuul的路由規則,

(2)post方式刷新refresh端點http://127.0.0.1:8080/refresh(以本機為例)

(3) 再次訪問zuul發現路由規則中存在新增的規則

從觸發refresh操作開始 -> ZuulPropeties中route更新 整個流程如下:

Spring Cloud Zuul路由規則動態更新的示例分析

Zuul網關的路由規則加載核心類 DiscoveryClientRouteLocator 和 SimpleRouteLocator,詳細可參考 Spring Cloud Zuul源碼。這里不做分析。

路由規則的加載機制主要是通過SimpleRouteLocator來加載ZuulPropetties中的路由規則。上圖說明了整個從refresh到屬性注入ZuulProperties的整個流程

缺點:

由于refresh后 首先加載的配置中心的全部zuul的最新K/V數據,然后根據加載的屬性K/V注入規則到ZuulPropeties( Bean)中,而ZuulPropeties在refresh之前就存在Bean容器中,

所以新增或者修改Zuul路由規則,refresh后會新增或者覆蓋ZuulPropeties中的屬性值,而刪除操作ZuulPropeties中的路由規則依舊存在,所以刪除無效

優點:

使用簡單,基于配置倉庫對路由規則進行版本管理,只需向外暴露refresh端點即可。

二、基于RefreshScope的動態刷新

擴展ZuulPropeties并使用RefreshScope注解,修改配置中心的路由規則后,觸發refresh操作路由規則即會發生變更,

代碼:

@Bean
 @ConfigurationProperties("zuul")
 @RefreshScope
 @Primary
 public ZuulProperties zuulProperties() {
  return new ZuulProperties();
 }

缺點:

需要自定義擴展ZuulPropetties,加入RefreshScope注解

優點:

由于RefreshScope使用cglib產生ZuulPropetties的代理,和一中Bean對象實現方式不同,所以針對路由規則刪除也可以生效

三、基于db存儲的動態刷新

Zuul網關的路由規則加載核心類 DiscoveryClientRouteLocator 和 SimpleRouteLocator,可

以擴展SimpleRouteLocator重載其中的locateRoutes()方法,實現自定義從db中加載路由規則,觸發條件仍然是refresh

缺點:

擴展復雜,需要定制化開發,并重寫路由規則的加載邏輯。

優點:

可以靈活控制路由規則變更,結合業務場景加入更多自定義功能

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Spring Cloud Zuul路由規則動態更新的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

治县。| 阳高县| 闵行区| 蒙山县| 荥阳市| 孟州市| 都昌县| 梨树县| 兴义市| 金沙县| 青冈县| 琼中| 昭觉县| 绥芬河市| 邵武市| 阆中市| 东阿县| 陈巴尔虎旗| 上高县| 常德市| 若羌县| 吴旗县| 榕江县| 兴文县| 汉寿县| 阿巴嘎旗| 赤峰市| 陕西省| 银川市| 额尔古纳市| 昌邑市| 泗阳县| 青海省| 青岛市| 杭锦旗| 巫山县| 卢湾区| 西乡县| 新民市| 上林县| 阿克陶县|