精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring Cloud Gateway + Nacos 實現服務上下線無縫切換

開發 前端
這里通過去監聽 Nacos 實例刷新事件,一旦出現實例發生變化馬上刪除緩存。在刪除負載均衡緩存后,Spring Cloud Gateway 在處理請求時發現沒有緩存會重新拉取一遍服務列表,這樣之后都是用的是最新的服務列表了,也就達到了我們動態感知上下線的目的。

?大家好,我是不才陳某~

最近知識星球的球友在學習星球中的《精盡Spring Cloud Alibaba》專欄提到一個問題,相信也有很多人在線上環境遇到過,或許也因此被批過:一個集群中有某個服務突然下線,但是網關還是會去請求這個實例,所以線上就報錯了,報錯信息如下圖:

圖片

究其原因到底為何呢?有沒有一種靠譜的解決方案呢?別著急,往下看

產生原因

Gateway中有個緩存 CachingRouteLocator ,而網關服務使用的是lb模式,服務在上線或者下線之后,未能及時刷新這個緩存,相應的源碼如下:

public class CachingRouteLocator implements Ordered, RouteLocator,
ApplicationListener<RefreshRoutesEvent>, ApplicationEventPublisherAware {

private static final Log log = LogFactory.getLog(CachingRouteLocator.class);

private static final String CACHE_KEY = "routes";

private final RouteLocator delegate;

private final Flux<Route> routes;

private final Map<String, List> cache = new ConcurrentHashMap<>();

private ApplicationEventPublisher applicationEventPublisher;

public CachingRouteLocator(RouteLocator delegate) {
this.delegate = delegate;
routes = CacheFlux.lookup(cache, CACHE_KEY, Route.class)
.onCacheMissResume(this::fetch);
}

private Flux<Route> fetch() {
return this.delegate.getRoutes().sort(AnnotationAwareOrderComparator.INSTANCE);
}

@Override
public Flux<Route> getRoutes() {
return this.routes;
}

/**
* Clears the routes cache.
* @return routes flux
*/
public Flux<Route> refresh() {
this.cache.clear();
return this.routes;
}

@Override
public void onApplicationEvent(RefreshRoutesEvent event) {
try {
fetch().collect(Collectors.toList()).subscribe(list -> Flux.fromIterable(list)
.materialize().collect(Collectors.toList()).subscribe(signals -> {
applicationEventPublisher
.publishEvent(new RefreshRoutesResultEvent(this));
cache.put(CACHE_KEY, signals);
}, throwable -> handleRefreshError(throwable)));
}
catch (Throwable e) {
handleRefreshError(e);
}
}

private void handleRefreshError(Throwable throwable) {
if (log.isErrorEnabled()) {
log.error("Refresh routes error !!!", throwable);
}
applicationEventPublisher
.publishEvent(new RefreshRoutesResultEvent(this, throwable));
}

@Deprecated
/* for testing */ void handleRefresh() {
refresh();
}

@Override
public int getOrder() {
return 0;
}

@Override
public void setApplicationEventPublisher(
ApplicationEventPublisher applicationEventPublisher) {
this.applicationEventPublisher = applicationEventPublisher;
}
}

那么解決方案就自然能夠想出來,只需要在服務下線時能夠去實時的刷新這個緩存自然就解決了

解決方案

這里通過去監聽 Nacos 實例刷新事件,一旦出現實例發生變化馬上刪除緩存。在刪除負載均衡緩存后,Spring Cloud Gateway 在處理請求時發現沒有緩存會重新拉取一遍服務列表,這樣之后都是用的是最新的服務列表了,也就達到了我們動態感知上下線的目的。

代碼如下:

@Component
@Slf4j
public class NacosInstancesChangeEventListener extends Subscriber<InstancesChangeEvent> {
@Resource
private CacheManager defaultLoadBalancerCacheManager;

@Override
public void onEvent(InstancesChangeEvent event) {
log.info("Spring Gateway 接收實例刷新事件:{}, 開始刷新緩存", JacksonUtils.toJson(event));
Cache cache = defaultLoadBalancerCacheManager.getCache(SERVICE_INSTANCE_CACHE_NAME);
if (cache != null) {
cache.evict(event.getServiceName());
}
log.info("Spring Gateway 實例刷新完成");
}

@Override
public Class<? extends com.alibaba.nacos.common.notify.Event> subscribeType() {
return InstancesChangeEvent.class;
}
}

這里通過繼承的方式監聽 Nacos 的 InstancesChangeEvent?,在 onEvent 接收到實例刷新的信息后直接刪除對應服務的負載均衡緩存,緩存的名字是定義在 Spring Gateway 的相關代碼中的,直接引入即可,Cache 則是繼承自 Spring Cache 接口,負載均衡緩存也繼承了 Cache 接口,有了 Cache 接口就可以直接使用其接口定義的 evict 方法即可,而緩存的 key 名就則就是服務名,在 InstancesChangeEvent 中,通過 getServiceName 就可以得到服務名。

這里就不演示了,有興趣的小伙伴可以測試一下

責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2025-05-27 02:55:00

Spring微服務

2023-02-20 10:13:00

灰度發布實現

2022-02-07 07:10:32

服務注冊功能

2024-05-13 18:35:06

負載均衡主機端口

2019-08-22 09:55:17

RedisAPI數據

2024-01-29 08:00:00

架構微服務開發

2024-07-29 08:24:43

2023-03-08 09:03:55

2022-08-15 09:22:12

JWT認證系統

2021-07-07 07:44:20

微服務Nacos緩存

2023-02-04 18:19:39

2023-11-09 08:31:56

Spring微服務網關

2021-01-14 07:54:19

Spring Clou應用路由

2022-01-07 07:29:08

Rbac權限模型

2023-01-26 01:41:27

核心全局過濾器

2023-07-24 08:00:56

客戶端訪問指定

2023-09-12 13:12:23

服務器系統

2023-02-13 08:10:40

Gateway網關Spring

2023-09-15 08:18:49

cookie網關代理

2021-11-04 10:11:02

Sentinel網關限流
點贊
收藏

51CTO技術棧公眾號

国产午夜精品视频免费不卡69堂| 国产精品入口麻豆九色| 欧美福利视频在线观看| wwwxx日本| 欧美电影免费观看| 国产精品另类一区| 翡翠波斯猫1977年美国| 久久久久久久久影院| 成人三级视频| 欧美mv和日韩mv国产网站| 成人免费观看视频在线观看| 欧美极品另类| 99re成人在线| 亚洲伊人久久综合| 国产第一页在线观看| 亚洲欧美综合国产精品一区| 日韩精品在线私人| 欧美性受xxxx黒人xyx性爽| 欧美日韩国产观看视频| 亚洲视频中文字幕| 免费亚洲一区二区| 亚洲AV无码精品自拍| 日韩精品久久理论片| 精品视频9999| 超碰人人干人人| 婷婷综合成人| 欧美v日韩v国产v| 向日葵污视频在线观看| 一二三四视频在线中文| 亚洲影院免费观看| 中文字幕一区综合| 欧美午夜黄色| 成人激情文学综合网| 91精品视频大全| 国产精品51麻豆cm传媒| 久久久久久婷| 欧美一级淫片丝袜脚交| 久久精品国产亚洲av香蕉| 91久久久精品国产| 在线观看成人黄色| 亚洲自拍偷拍图| 免费短视频成人日韩| 亚洲国产欧美一区二区丝袜黑人| 国产又粗又猛又爽又黄| 成人综合日日夜夜| 欧美日韩午夜精品| 天天干在线影院| 久久野战av| 色94色欧美sute亚洲13| 凹凸国产熟女精品视频| 校园春色亚洲| 色综合天天综合狠狠| 免费欧美一级视频| 激情黄产视频在线免费观看| 亚洲国产一区二区三区青草影视| 337p亚洲精品色噜噜狠狠p| 黄色网在线免费看| 亚洲色图视频网| 日韩精品一区二区三区电影| 成人午夜在线影视| 亚洲精品视频在线看| 日本一道在线观看| 国语对白在线刺激| 黄色一区二区在线观看| 97国产在线播放| 黄色亚洲网站| 欧美日韩一区在线观看| 国产成人黄色网址| 中文字幕日韩亚洲| 日韩欧美国产系列| 天天躁日日躁狠狠躁av麻豆男男| 老牛精品亚洲成av人片| 亚洲欧美资源在线| 欧美aaa级片| 91成人看片| 性色av一区二区三区| 依依成人综合网| 免费高清视频精品| 97久久夜色精品国产九色 | 国产精品普通话对白| 91成人在线播放| 中文字幕 国产精品| 精品一区二区久久久| 99www免费人成精品| 日批免费在线观看| 久久综合五月天婷婷伊人| 欧美一进一出视频| 18+视频在线观看| 婷婷丁香激情综合| 日本在线一二三区| 黄色网一区二区| 国产午夜精品视频| 精品99在线观看| 狂野欧美一区| 99久热re在线精品视频| 福利片在线看| 亚洲小说欧美激情另类| 欧美日韩亚洲自拍| 成人av影音| 视频在线观看一区二区| 久久精品人妻一区二区三区| 麻豆成人av在线| 国产一区自拍视频| 在线观看免费高清完整| 亚洲成人av一区二区三区| 黄色片视频在线| 极品国产人妖chinesets亚洲人妖| 一区二区在线视频| 日韩激情在线播放| 极品销魂美女一区二区三区| 欧美成人蜜桃| 欧美四级在线| 欧美久久一二三四区| 亚洲天堂网一区二区| 91精品啪在线观看国产81旧版| 97免费中文视频在线观看| 91在线精品入口| 久久精品免视看| 国产婷婷一区二区三区| 国产精品日本一区二区三区在线| 亚洲午夜av久久乱码| 日韩高清精品免费观看| 国产成人免费视频一区| 色香蕉在线观看| 电影一区电影二区| 亚洲精品资源美女情侣酒店| 国产一级视频在线播放| 国产美女主播视频一区| 亚洲国产另类久久久精品极度| 日本乱码一区二区三区不卡| 精品国产91九色蝌蚪| 99久久婷婷国产综合| 久久9热精品视频| 日韩精品一区二区三区四区五区| 亚洲一级少妇| 日韩精品黄色网| 日本少妇毛茸茸高潮| 国产91精品一区二区麻豆亚洲| 国产91av视频在线观看| 日韩专区视频网站| 色综合影院在线| 色老头在线视频| 久久精品这里都是精品| 国产麻花豆剧传媒精品mv在线| 女人抽搐喷水高潮国产精品| 性日韩欧美在线视频| 婷婷五月综合久久中文字幕| 午夜久久久久久| 精品人妻一区二区三区日产| 亚洲精选久久| 精品蜜桃一区二区三区| 韩日精品一区二区| 一个人看的www久久| 乱子伦一区二区三区| 欧美高清在线精品一区| 国产成人美女视频| 性欧美69xoxoxoxo| 91成人伦理在线电影| 日本在线观看高清完整版| 日韩女优av电影| 国产在线视频99| 99久久精品国产一区| 黄色国产精品视频| 精品国产99| 成人激情免费在线| 宅男在线观看免费高清网站| 欧美精品一区二区三区蜜臀 | 在线观看国产91| 亚洲欧洲综合网| 国产成人av电影在线| 国产精品自拍片| 国产一卡不卡| 成人h视频在线观看播放| 国产写真视频在线观看| 欧美变态tickling挠脚心| 国产成人精品一区二三区| 久久久久久**毛片大全| 一本色道久久亚洲综合精品蜜桃| 国产精品久久天天影视| 国产精品一区二区三区免费| 吉吉日韩欧美| 欧美理论电影在线观看| 亚洲 精品 综合 精品 自拍| 欧美午夜精品电影| 欧美成人免费观看视频 | 黄色片网站在线播放| 国产精品自拍在线| 日本网站免费在线观看| 人人狠狠综合久久亚洲婷| 成人情视频高清免费观看电影| 成人勉费视频| 欧美插天视频在线播放| 可以免费看污视频的网站在线| 在线成人av网站| 亚洲高清毛片一区二区| 136国产福利精品导航| 国产精品嫩草av| 国内精品写真在线观看| 妞干网在线免费视频| 午夜精品视频| 午夜精品一区二区三区四区| 大奶在线精品| 91免费欧美精品| 欧美片第1页| 久久久久久久久久婷婷| 一广人看www在线观看免费视频| 亚洲第一页自拍| 国产亲伦免费视频播放| 日本丶国产丶欧美色综合| 国产真实的和子乱拍在线观看| 国产日产精品1区| 大尺度在线观看| 国产在线播放一区| 韩国视频一区二区三区| 999成人网| 欧美福利精品| 国产精品视屏| 5g影院天天爽成人免费下载| 成人国产一区| 国产ts一区二区| 欧美男男tv网站在线播放| 欧美激情日韩图片| 美女羞羞视频在线观看| 自拍偷拍亚洲在线| 国产福利在线观看| 亚洲另类xxxx| 手机看片福利永久| 亚洲成av人片在线观看香蕉| 国产美女www爽爽爽视频| 在线一区二区三区四区五区| 国产成人自拍视频在线| 亚洲国产精品天堂| 国产小视频在线看| 亚洲一区二区三区视频在线播放| 国产精品精品软件男同| 国产精品久久久爽爽爽麻豆色哟哟 | 国产视频综合在线| 婷婷伊人综合中文字幕| 亚洲精品久久久久久久久久久久久| 性一交一乱一伧老太| 91精品国产入口| 国产精品视频第一页| 欧美剧情片在线观看| 91在线视频国产| 91精品国产一区二区| 国产哺乳奶水91在线播放| 91精品国产福利| 国产喷水福利在线视频| 日韩视频免费直播| 丰满肉嫩西川结衣av| 精品三级在线看| 天天干,夜夜爽| 精品一区二区三区四区| 精品推荐蜜桃传媒| 国产亚洲精品91在线| 91啦中文在线| 久久精品99无色码中文字幕| 成人福利片网站| 欧美男插女视频| 女人让男人操自己视频在线观看| 91成人精品网站| 午夜激情成人网| 成人av电影天堂| 成人在线超碰| 欧美影视一区二区| 久久大综合网| 日本男女交配视频| 国产亚洲一级| 成人免费在线观看视频网站| 精品一区二区三区在线观看国产| 色偷偷中文字幕| 成人激情免费网站| 国产又粗又黄又猛| 亚洲激情成人在线| 日韩乱码人妻无码中文字幕| 在线看一区二区| 国产99对白在线播放| 日韩精品视频免费在线观看| 97在线观看免费观看高清 | 中文字幕资源网在线观看免费| 国产精国产精品| 久久伊人久久| 牛人盗摄一区二区三区视频| 亚洲国产精品久久久久蝴蝶传媒| 18禁裸男晨勃露j毛免费观看| 麻豆成人精品| 国产又粗又猛大又黄又爽| 97se亚洲国产综合自在线| 山东少妇露脸刺激对白在线| 一区二区三区av电影 | 91精品国产综合久久久久久漫画| 色婷婷综合视频| 俺去亚洲欧洲欧美日韩| 高清视频在线观看三级| 91精品久久久久久久久久| 极品一区美女高清| 国产日韩视频在线播放| 国产精品日韩| gogo亚洲国模私拍人体| 久久精品亚洲国产奇米99| 国产一级中文字幕| 精品视频免费在线| 三级在线观看| 色与欲影视天天看综合网| 777午夜精品电影免费看| 国产日韩欧美二区| 中文字幕日韩欧美精品高清在线| 北条麻妃在线视频| 成人黄页毛片网站| 影音先锋男人资源在线观看| 欧美日韩在线免费观看| 精品乱子伦一区二区| 日韩在线视频中文字幕| 欧洲av不卡| 黑人中文字幕一区二区三区| 91精品国产麻豆国产在线观看| 男人的天堂日韩| 91网站在线播放| 国产亚洲精品久久久久久无几年桃| 欧美日韩小视频| 99中文字幕一区| 国产大片精品免费永久看nba| 女仆av观看一区| 131美女爱做视频| 国产99精品在线观看| 加勒比婷婷色综合久久| 欧美日韩高清在线| 成av人电影在线观看| 日韩美女在线看| 亚洲三级性片| 黄色动漫在线免费看| 97久久精品人人做人人爽50路| 久久激情免费视频| 日韩欧美国产系列| 日本电影在线观看| 高清不卡日本v二区在线| 欧美一区亚洲| 免费人成视频在线播放| 亚洲免费资源在线播放| 国产精品视频第一页| 久久综合久久八八| 精品国产一区二区三区2021| 国产一区一区三区| 国产曰批免费观看久久久| 亚洲欧美一区二区三区四区五区| 欧美一区二区在线看| av免费网站在线观看| 91国产丝袜在线放| 欧美女激情福利| 国产精品果冻传媒| 亚洲成年人网站在线观看| 天天操天天插天天射| 欧美性资源免费| 国产欧美日韩在线一区二区 | 日韩手机在线观看| 日韩不卡在线观看| 日韩欧美看国产| 亚洲精品在线免费看| 国产一区二区毛片| 久久久无码一区二区三区| 亚洲国产精品久久久久久| 忘忧草在线日韩www影院| 欧美一级二级三级九九九| 久久精品国产精品亚洲精品| 日韩欧美国产成人精品免费| 日韩欧美高清在线| 日本免费一区二区六区| 日韩精品av一区二区三区| 久久国产综合精品| 久青草视频在线观看| 日韩精品在线电影| 深夜福利亚洲| 久久精品无码中文字幕| 久久久亚洲高清| 国产精品视频在线观看免费| 久久久免费精品| 国产乱码精品一区二区亚洲 | 九九久久国产精品| 欧美黑人做爰爽爽爽| 欧美特级aaa| 一区二区三区日韩在线观看| 日韩精品123| 成人午夜在线视频一区| 亚洲激情网址| 中国1级黄色片| 欧美精品一区二区精品网| 韩日一区二区| 成人精品视频在线播放| 国产亚洲一区二区在线观看| 国产高清视频免费| 欧洲亚洲女同hd| 亚洲九九在线| 中文字幕免费视频| 日韩美女在线视频| jizz亚洲女人高潮大叫| 91免费黄视频| 自拍偷拍国产精品| 久久国产精品高清一区二区三区| 91在线免费看网站| 午夜综合激情|