日韩性视频-久久久蜜桃-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(九)之路由自动刷新原理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: www中文字幕| 九九九九九九精品 | av老司机在线播放 | 91精品国产综合久久久蜜臀九色 | 中文免费视频 | 日本成人一二三区 | 亚洲精品视频大全 | 成人精品视频在线 | 一区二区三区免费在线观看视频 | 亚洲综合免费观看高清完整版在线 | 天堂毛片 | 久久久久人妻一区二区三区 | 欧美日韩四区 | 午夜精品在线播放 | 91手机在线播放 | 中文字幕你懂的 | 男人免费视频 | 天天干天天曰 | 校园春色自拍偷拍 | 国产第99页 | 欧美一级啪啪 | 成人在线a | 久久久久人妻一区精品色 | 麻豆一区二区三区精品视频 | 久久特级毛片 | 中文字幕 成人 | 美女黄色免费网站 | wwwxx在线| 天堂俺去俺来也www久久婷婷 | 波多野结衣一二区 | 强乱中文字幕 | 黑白配在线观看免费观看 | 午夜精品久久久久久 | 亚洲精品女人久久久 | 黄色短视频在线播放 | 精品在线视频免费 | 九九国产精品视频 | 国产精品第三页 | 99久久人妻无码中文字幕系列 | 在线观看91视频 | 日韩国产在线播放 | 中文字幕淫 | 午夜久久网 | 麻豆精品免费观看 | 91超碰在线观看 | 日韩亚洲精品中文字幕 | 男人的天堂免费 | 开心黄色网 | 女久久| 色婷综合| 色综合色婷婷 | 嫩模一区 | 夜夜操天天爽 | 黄色在线小视频 | 911亚洲精品 | 日韩中文字幕网站 | 欧美精品18videosex性欧美 | 欧美做爰xxxⅹ性欧美大片 | 国产精品成 | 成人免费观看a | 国产精品宾馆在线精品酒店 | 久久久999 | 色哟哟视频 | 手机看片1024在线 | 性欧美丰满熟妇xxxx性 | 精品国产乱码久久久久久1区2区 | 毛片免费一区二区三区 | 日韩中文字幕在线观看 | 久久网站免费 | 亚洲激情在线播放 | 肥臀av | 亚洲九九精品 | 国产综合视频一区二区 | 琪琪色综合 | 中文字幕一区二区三区久久久 | 可以免费观看的毛片 | 日韩一级片在线 | 国产宾馆实践打屁股91 | 欧美日韩在线免费观看视频 | 少妇脚交调教玩男人的视频 | 免费观看av | 日韩中文av在线 | 国产精品视频一区二区三区不卡 | 97自拍网 | 中文一二区 | 毛毛毛片 | 亚洲AV无码国产精品播放在线 | 美女视频在线免费观看 | 国产资源久久 | 国产真实老熟女无套内射 | 男生和女生靠逼视频 | 免费成人美女女 | 天天操天天插天天射 | 一区二区三区视频免费视 | 三级欧美韩日大片在线看 | 日本少妇性生活 | 久久九九爱 | 美日韩精品视频 | 奇米777第四色 |