日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringCloud Zuul(九)之路由自动刷新原理

發布時間:2023/12/3 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringCloud Zuul(九)之路由自动刷新原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、現象

發布新服務,然后在數據庫配置了路由,使用服務路徑訪問404。然后重新發布新的服務,就可以繼續訪問得到

(1)配置了路由第一次訪問

(2)重新發布后訪問

?

二、分析

(1)查找RefreshableRouteLocator .refresh方法

@Component public class NacosRouteLocator extends SimpleRouteLocator implements RefreshableRouteLocator {public NacosRouteLocator(ServerProperties serverProperties, ZuulProperties properties) {super(serverProperties.getServlet().getContextPath(), properties);}@Overridepublic void refresh() {doRefresh();}@Overrideprotected Map<String, ZuulProperties.ZuulRoute> locateRoutes() {//默認從配置文件中加載路由信息//return super.locateRoutes());//定制路由, 可以使用db的配置管理進行路由Map<String, ZuulProperties.ZuulRoute> routesMap = DbUtils.loadRoutes();return routesMap;}}

(2)ZuulHandlerMapping.setDirty方法

public class ZuulHandlerMapping extends AbstractUrlHandlerMapping {public void setDirty(boolean dirty) {this.dirty = dirty;if (this.routeLocator instanceof RefreshableRouteLocator) {((RefreshableRouteLocator) this.routeLocator).refresh();}} }

(3)ZuulRefreshListener.reset方法

private static class ZuulRefreshListenerimplements ApplicationListener<ApplicationEvent> {@Autowiredprivate ZuulHandlerMapping zuulHandlerMapping;private HeartbeatMonitor heartbeatMonitor = new HeartbeatMonitor();@Overridepublic void onApplicationEvent(ApplicationEvent event) {if (event instanceof ContextRefreshedEvent|| event instanceof RefreshScopeRefreshedEvent|| event instanceof RoutesRefreshedEvent|| event instanceof InstanceRegisteredEvent) {reset();}else if (event instanceof ParentHeartbeatEvent) {ParentHeartbeatEvent e = (ParentHeartbeatEvent) event;resetIfNeeded(e.getValue());}else if (event instanceof HeartbeatEvent) {HeartbeatEvent e = (HeartbeatEvent) event;resetIfNeeded(e.getValue());}}private void resetIfNeeded(Object value) {if (this.heartbeatMonitor.update(value)) {reset();}}private void reset() {this.zuulHandlerMapping.setDirty(true);}}

(4)發現ApplicationEvent

@Overridepublic void onApplicationEvent(ApplicationEvent event) {if (event instanceof ContextRefreshedEvent|| event instanceof RefreshScopeRefreshedEvent|| event instanceof RoutesRefreshedEvent|| event instanceof InstanceRegisteredEvent) {reset();}else if (event instanceof ParentHeartbeatEvent) {ParentHeartbeatEvent e = (ParentHeartbeatEvent) event;resetIfNeeded(e.getValue());}else if (event instanceof HeartbeatEvent) {HeartbeatEvent e = (HeartbeatEvent) event;resetIfNeeded(e.getValue());}}

其中的實例注冊事件InstanceRegisteredEvent會觸發刷新路由。

總結

以上是生活随笔為你收集整理的SpringCloud Zuul(九)之路由自动刷新原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一级少妇毛片 | 两性av| 性一交一乱一色一视频麻豆 | 国产成人av一区二区三区在线观看 | 人人艹人人爱 | 国产精品日韩一区二区 | 人妻无码久久精品人妻 | 夜夜摸夜夜操 | 亚洲欧美日韩中文字幕在线观看 | 中国在线观看视频高清免费 | 男人懂得网站 | 日本三级一区二区 | 九九色九九 | 爱情岛亚洲首页论坛小巨 | 一区二区中文字幕在线观看 | 97视频免费在线 | 超级碰在线视频 | 国产美女明星三级做爰 | 日韩精品专区 | 欧美性猛交ⅹ乱大交3 | 91成人入口| 九九视频免费看 | 国产视频精选 | 美女校花脱精光 | 日本在线免费观看 | 伊人网伊人网 | 狠狠鲁影院 | 尤物视频官网 | 麻豆久久久9性大片 | 国产精品久久久久久久久久免费看 | 亚洲福利一区 | 国产女人在线视频 | 91娇羞白丝 | 黄色网战大全 | 在线视频日韩精品 | √资源天堂中文在线 | 在线视频导航 | 亚洲美女在线播放 | 毛片在线免费观看网站 | 日韩网站免费观看 | 人妻av中文系列 | 日本久久久久久久久 | 正在播放adn156松下纱荣子 | 国产精品国产三级国产普通话蜜臀 | 丝袜视频一区 | 麻豆国产一区二区三区 | 超碰人人超碰 | 精品妇女一区二区三区 | 九九久久免费视频 | 久久精品精品 | 不许穿内裤随时挨c调教h苏绵 | 亚洲综合另类 | 国产精品免费视频一区 | 深喉口爆一区二区三区 | 日韩在线电影一区二区 | 日韩高清一级片 | 欧美第一夜 | 国产欧美123 | 爱的色放3| 欧美在线三区 | av伦理在线 | 亚洲九九九九 | 日韩欧美亚洲视频 | 毛片9| 97avcc| 每日更新av| 国产五月天婷婷 | 亚洲狠狠婷婷综合久久久久图片 | 中文字幕观看在线 | 在线亚洲+欧美+日本专区 | 国产六区| 黑白配高清国语在线观看 | 亚洲在线看| 91插插插插插插插 | 三级特黄 | 久久av一区二区三 | 中文字幕欧美亚洲 | 免费在线观看黄网 | 国产精品久久久久久久裸模 | 黄色精品 | 精品98| www.亚洲欧美 | 91美女啪啪 | 欧美色图日韩 | 国产明星换脸xxxx色视频 | 狠狠操精品 | 丝袜视频在线观看 | wwwxxx黄色片 | 国产一级特黄 | www日本在线 | 日本一本在线 | 天天色影综合网 | 天天干视频 | 90岁老太婆乱淫 | 欧洲精品久久久久毛片完整版 | 在线播放av网址 | 在线高清观看免费 | 日韩美女激情视频 | 天天色天天射天天干 |