最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

背景

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

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

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

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

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

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

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

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

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

缺點(diǎn):

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

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

優(yōu)點(diǎn):

使用簡(jiǎn)單,基于配置倉(cāng)庫(kù)對(duì)路由規(guī)則進(jìn)行版本管理,只需向外暴露refresh端點(diǎn)即可。

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

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

代碼:

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

缺點(diǎn):

需要自定義擴(kuò)展ZuulPropetties,加入RefreshScope注解

優(yōu)點(diǎn):

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

三、基于db存儲(chǔ)的動(dòng)態(tài)刷新

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

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

缺點(diǎn):

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

優(yōu)點(diǎn):

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA調(diào)用JavaScript方法代碼示例

    JAVA調(diào)用JavaScript方法代碼示例

    我們都知道腳本語言非常靈活,在處理某些問題的時(shí)候Java實(shí)現(xiàn)用十幾行來寫,用js可能不到十行就寫完,并且非常簡(jiǎn)潔,這篇文章主要給大家介紹了關(guān)于JAVA調(diào)用JavaScript方法的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • Java日期格式化如何避免YYYY引發(fā)的時(shí)間異常

    Java日期格式化如何避免YYYY引發(fā)的時(shí)間異常

    在編程中,日期格式化是一個(gè)常見的任務(wù),使用不同的格式化選項(xiàng)可能會(huì)導(dǎo)致一些意外的結(jié)果,下面我們就來學(xué)習(xí)一下Java如何避免YYYY引發(fā)的時(shí)間異常吧
    2023-11-11
  • 詳解Spring 框架中切入點(diǎn) pointcut 表達(dá)式的常用寫法

    詳解Spring 框架中切入點(diǎn) pointcut 表達(dá)式的常用寫法

    這篇文章主要介紹了詳解Spring 框架中切入點(diǎn) pointcut 表達(dá)式的常用寫法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • idea2020.3配置maven環(huán)境并配置Tomcat的詳細(xì)教程

    idea2020.3配置maven環(huán)境并配置Tomcat的詳細(xì)教程

    這篇文章主要介紹了idea2020.3配置maven環(huán)境并配置Tomcat的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • java繼承的概念及案例解析

    java繼承的概念及案例解析

    這篇文章主要介紹了java繼承的概念及案例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • mybatis中查詢結(jié)果為空時(shí)不同返回類型對(duì)應(yīng)返回值問題

    mybatis中查詢結(jié)果為空時(shí)不同返回類型對(duì)應(yīng)返回值問題

    這篇文章主要介紹了mybatis中查詢結(jié)果為空時(shí)不同返回類型對(duì)應(yīng)返回值問題,本文分幾種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2019-10-10
  • SpringBoot+STOMP協(xié)議實(shí)現(xiàn)私聊、群聊

    SpringBoot+STOMP協(xié)議實(shí)現(xiàn)私聊、群聊

    本文將結(jié)合實(shí)例代碼,介紹SpringBoot+STOMP協(xié)議實(shí)現(xiàn)私聊、群聊,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 別在Java代碼里亂打日志了,這才是正確的打日志姿勢(shì)

    別在Java代碼里亂打日志了,這才是正確的打日志姿勢(shì)

    這篇文章主要介紹了別在Java代碼里亂打日志了,這才是正確的打日志姿勢(shì),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java設(shè)計(jì)模式之橋模式(Bridge模式)介紹

    Java設(shè)計(jì)模式之橋模式(Bridge模式)介紹

    這篇文章主要介紹了Java設(shè)計(jì)模式之橋模式(Bridge模式)介紹,本文講解了為什么使用橋模式、如何實(shí)現(xiàn)橋模式、Bridge模式在EJB中的應(yīng)用等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • SpringMVC中MultipartFile上傳獲取圖片的寬度和高度詳解

    SpringMVC中MultipartFile上傳獲取圖片的寬度和高度詳解

    本篇文章主要介紹了SpringMVC中MultipartFile上傳獲取圖片的寬度和高度,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05

最新評(píng)論

呼图壁县| 阿克| 堆龙德庆县| 叶城县| 大方县| 南漳县| 鄂尔多斯市| 攀枝花市| 车致| 宣城市| 福清市| 东丰县| 江陵县| 普安县| 台山市| 丘北县| 都安| 庐江县| 松原市| 墨江| 高台县| 离岛区| 陵川县| 稻城县| 贵溪市| 泽普县| 佛冈县| 新津县| 萍乡市| 板桥市| 达孜县| 和龙市| 商洛市| 绿春县| 即墨市| 泾源县| 澄江县| 会同县| 清苑县| 永平县| 禄劝|