欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Cloud Zuul路由規(guī)則動態(tài)更新解析

 更新時間:2019年11月15日 14:54:52   作者:技術與人生  
這篇文章主要介紹了Spring Cloud Zuul路由規(guī)則動態(tài)更新解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了Spring Cloud Zuul路由規(guī)則動態(tài)更新解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

背景

Spring Cloud Zuul 作為微服務的網(wǎng)關,請求經(jīng)過zuul路由到內(nèi)部的各個service,由于存在著新增/修改/刪除服務的路由規(guī)則的需求,zuul的路由規(guī)則的動態(tài)變更功能 提供了

無須重啟zuul網(wǎng)關,即可實時更新,現(xiàn)有如下幾種方式:

一、基于refresh + config-server事件動態(tài)刷新

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

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

(3) 再次訪問zuul發(fā)現(xiàn)路由規(guī)則中存在新增的規(guī)則

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

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

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

缺點:

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

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

優(yōu)點:

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

二、基于RefreshScope的動態(tài)刷新

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

代碼:

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

缺點:

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

優(yōu)點:

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

三、基于db存儲的動態(tài)刷新

Zuul網(wǎng)關的路由規(guī)則加載核心類 DiscoveryClientRouteLocator 和 SimpleRouteLocator,可

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

缺點:

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

優(yōu)點:

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java將日期類型Date時間戳轉(zhuǎn)換為MongoDB的時間類型數(shù)據(jù)

    Java將日期類型Date時間戳轉(zhuǎn)換為MongoDB的時間類型數(shù)據(jù)

    今天小編就為大家分享一篇關于Java將日期類型Date時間戳轉(zhuǎn)換為MongoDB的時間類型數(shù)據(jù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Json轉(zhuǎn)換工具類

    Json轉(zhuǎn)換工具類

    今天小編就為大家分享一篇關于Json轉(zhuǎn)換工具類,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • IDEA 開發(fā)配置SparkSQL及簡單使用案例代碼

    IDEA 開發(fā)配置SparkSQL及簡單使用案例代碼

    這篇文章主要介紹了IDEA 開發(fā)配置SparkSQL及簡單使用案例代碼,本文通過代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務配置的示例

    Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務配置的示例

    定時任務是一項至關重要的功能,它們使得我們能夠按照預定的時間執(zhí)行特定的任務,本文主要介紹了Spring中利用SchedulingConfigurer實現(xiàn)動態(tài)定時任務配置的示例,感興趣的可以了解一下
    2024-05-05
  • 帶你詳細了解Java值傳遞和引用傳遞

    帶你詳細了解Java值傳遞和引用傳遞

    這篇文章主要介紹了帶你詳細了解Java值傳遞和引用傳遞,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-04-04
  • IDEA?+?Maven環(huán)境下的SSM框架整合及搭建過程

    IDEA?+?Maven環(huán)境下的SSM框架整合及搭建過程

    這篇文章主要介紹了IDEA?+?Maven環(huán)境下的SSM框架整合及搭建過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 淺談java對象之間相互轉(zhuǎn)化的多種方式

    淺談java對象之間相互轉(zhuǎn)化的多種方式

    這篇文章主要介紹了淺談java對象之間相互轉(zhuǎn)化的多種方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java對象克隆實現(xiàn)方法詳解

    java對象克隆實現(xiàn)方法詳解

    這篇文章主要給大家介紹了關于java對象克隆實現(xiàn)的相關資料,克隆就是復制一個對象的副本,Java支持我們對一個對象進行克隆,通常用在裝飾模式和原型模式中,需要的朋友可以參考下
    2023-06-06
  • SpringCloud Zuul過濾器和谷歌Gauva實現(xiàn)限流

    SpringCloud Zuul過濾器和谷歌Gauva實現(xiàn)限流

    這篇文章主要介紹了SpringCloud Zuul過濾器和谷歌Gauva實現(xiàn)限流,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SpringBoot2.X Devtools熱部署實現(xiàn)解析

    SpringBoot2.X Devtools熱部署實現(xiàn)解析

    這篇文章主要介紹了SpringBoot2.X Devtools熱部署實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08

最新評論