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

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

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

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

背景

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

無(wú)須重啟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) 再次訪問(wèn)zuul發(fā)現(xiàn)路由規(guī)則中存在新增的規(guī)則

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

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

路由規(guī)則的加載機(jī)制主要是通過(guò)SimpleRouteLocator來(lái)加載ZuulPropetties中的路由規(guī)則。上圖說(shuō)明了整個(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ī)則依舊存在,所以刪除無(wú)效

優(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ù)雜,需要定制化開(kāi)發(fā),并重寫路由規(guī)則的加載邏輯。

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

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

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

相關(guān)文章

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

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

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

    Json轉(zhuǎn)換工具類

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

    IDEA 開(kāi)發(fā)配置SparkSQL及簡(jiǎn)單使用案例代碼

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

    Spring中利用SchedulingConfigurer實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)配置的示例

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

    帶你詳細(xì)了解Java值傳遞和引用傳遞

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論