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

排查Dubbo接口重復注銷問題,我發現了一個巧妙的設計

開發 前端
我在公司內負責自研的dubbo注冊中心相關工作,群里經常接到業務方反饋dubbo接口注銷報錯。

 [[396584]]

本文轉載自微信公眾號「捉蟲大師」,作者捉蟲大師。轉載本文請聯系捉蟲大師公眾號。

背景

我在公司內負責自研的dubbo注冊中心相關工作,群里經常接到業務方反饋dubbo接口注銷報錯。經排查,確定是同一個接口調用了兩次注銷接口導致,由于我們的注冊中心注銷接口不能重復調用,調用第二次會因為實例已經注銷而報實例找不到的錯誤。

雖然這個報錯僅會打印一條錯誤日志,不影響業務,但本著 follow through的精神,我決定還是一探究竟,更何況重復注銷也增加了應用的結束時間,影響了發布回滾速度。

問題復現

拿到業務方的dubbo版本,基于開源2.7.3內部定制的一個版本,該版本修改主要涉及安全漏洞修復以及一些業務適配,寫了個demo跑起來,然后kill,發現果然報錯了。

為了確定不是內部修改導致的問題,用開源的2.7.3版本再次測試,發現還是報錯。

同時為了確定這是一個bug,我將dubbo版本修改為2.7.7做測試,發現該版本不再報錯。

說明了重復注銷至少是開源dubbo 2.7.3的一個bug,在更高的2.7.7版本中已經被修復。

于是有了解決方案:升級dubbo,但如果這么簡單就沒有這篇文章了。

內部的dubbo已經做了修改,想升級得把改動merge到新版本,比較費勁

就算升級了內部的dubbo版本,也不可能這么快速推動業務方升級

所以應該首先找到bug是哪里導致的,其次看注冊中心的擴展是否可以修復這個問題,如果不能修復,就只能在內部的dubbo版本中修復該問題。

問題排查

懷疑ShutdownHook

由于這幾天研究過ShutdownHook(點擊查看原文跳轉《ShutdownHook原理》),第一時間懷疑ShutdownHook可能有問題。

dubbo 2.7.3代碼有關ShutdownHook的實現在DubboShutdownHook類,順著代碼梳理出如下關系

看到dubbo本身和spring都注冊了ShutdownHook,更加懷疑這里是不是ShutdownHook注冊重復了。于是debug看看是否是注冊重復了,這里給一個小經驗,IntelliIDEA調試ShutdownHook執行時,要手動kill進程才會觸發debug,點IDE上的關閉按鈕不會觸發

在DubboShutdownHook.doDestroy打上斷點,debug發現只會執行一次,這說明spring和dubbo的ShutdownHook只會注冊一次,這是怎么實現的呢?經過很多次測試,發現了dubbo一個很牛逼的設計。

DubboShutdownHook中有register和unregister方法,分別是注冊和注銷ShutdownHook,在這兩個方法上都打上斷點,在程序啟動時發現這樣一個有趣的執行順序:

總結一下是dubbo本身注冊了ShutdownHook,但如果用到了spring框架,spring框架在初始化時注銷了dubbo注冊的ShutdownHook,這樣就只保留了spring的ShutdownHook,真是秒啊!實現的代碼只有這短短幾行

  1. public static void addApplicationContext(ApplicationContext context) { 
  2.     CONTEXTS.add(context); 
  3.     if (context instanceof ConfigurableApplicationContext) { 
  4.         ((ConfigurableApplicationContext) context).registerShutdownHook(); 
  5.         DubboShutdownHook.getDubboShutdownHook().unregister(); 
  6.     } 
  7.     BeanFactoryUtils.addApplicationListener(context, SHUTDOWN_HOOK_LISTENER); 

于是懷疑的ShutdownHook問題被證明沒有任何問題了。

從注銷堆棧繼續排查

能穩定復現的問題一定很好排查,借助IDE的debug來看兩次注銷的調用堆棧,在注冊中心擴展的unregister方法處加斷點,可以看到如下兩次來源不同的堆棧信息

代碼中體現是

也就是說一次ShutdownHook執行,觸發了兩次注銷。

接下來就比較好排查了,一步一步debug,這里解釋下

  • AbstractRegistryFactory.destroyAll()是銷毀所有注冊中心,銷毀時會調研注冊中心的注銷接口
  • destroyProtocols是銷毀所有的protocol,注冊中心的protocol在銷毀時拿到registry,然后調用了registry的注銷接口

那么dubbo 2.7.7是如何避免這個問題的呢?

在dubbo 2.7.7的代碼中,注冊中心的protocol在銷毀時獲取注冊中心稍微增加了點代碼

原來在注冊中心被銷毀后,destroyed變量被置為true,從而在registry protocol再次獲取注冊中心時,已經拿不到了原先的注冊中心了,拿到的是一個空的注冊中心,調用注銷,自然沒有什么效果。

追溯了下github,這次PR是

https://github.com/apache/dubbo/pull/5450

這個修復在2.7.5就已經修復了

總結

  • dubbo重復注銷問題存在于2.7.0 ~ 2.7.4版本,2.7.5修復,zk注冊中心不會報錯,可能無法感知,但它確實存在,也會拖慢應用的關閉速度
  • 通過追查發現,其實該問題可以在注冊中心的擴展中解決,讓registry的destroy只能被調用一次
  • 遇到無論多小的問題,有空都去鉆研下,你會收貨一些新知識,比如這次dubbo中ShutdownHook如此巧妙的設計

 

責任編輯:武曉燕 來源: 捉蟲大師
相關推薦

2024-05-20 08:25:55

2021-10-29 11:45:26

Python代碼Python 3.

2025-05-19 10:04:48

2022-11-30 09:18:51

JavaMyBatisMQ

2021-04-22 07:47:47

JavaJDKMYSQL

2023-05-17 00:22:15

2019-01-14 11:10:43

機器學習人工智能計算機

2021-06-02 08:00:57

WebAsyncTas項目異步

2022-04-06 08:47:03

Dubbo服務協議

2020-05-18 08:42:23

CSS背景圖像前端開發

2025-06-04 08:10:59

2023-02-26 01:02:22

2021-12-29 19:20:41

數據GitHub服務器

2023-06-05 08:22:20

2024-11-08 14:18:38

2024-06-06 08:46:37

2020-04-01 08:40:44

Vue.jsweb開發

2024-06-03 11:43:55

2022-06-08 08:14:27

Dubbo數據包源代碼

2020-06-09 08:05:11

Android 代碼操作系統
點贊
收藏

51CTO技術棧公眾號

国产激情视频一区二区在线观看| 宅男在线一区| 亚洲欧美综合| 一区二区免费在线播放| 午夜精品久久久久久久久久久久久 | 69国产精品视频免费观看| 成人日韩欧美| 国产成人av电影在线| 精品盗摄一区二区三区| 日韩啊v在线| 欧美男人天堂网| 国产高清亚洲| 亚洲成人福利片| 欧美日韩高清免费| 女人18毛片毛片毛片毛片区二| 99se视频在线观看| 9色精品在线| 亚洲视频777| 91精品国产三级| 手机在线理论片| 国内成人自拍视频| 国产小视频国产精品| 国产成人精品免费看在线播放| 久久婷婷一区二区| 久久99久久人婷婷精品综合| 亚洲午夜精品17c| 免费看成人午夜电影| 国产在线精品观看| 综合中文字幕| 17c精品麻豆一区二区免费| 国产精品免费一区二区三区都可以 | 7777精品伊人久久久大香线蕉| 99国产超薄丝袜足j在线观看 | 四虎成人在线| 一区二区日韩电影| 欧美人xxxxx| 一区二区美女视频| 一区二区三区四区在线看| 欧美福利视频导航| 99热成人精品热久久66| 亚洲黄色在线观看视频| 日韩不卡手机在线v区| 亚洲精品久久久久久久久久久久久| 一区二区三区的久久的视频| 欧美精品一二三四区| 久久精品国产大片免费观看| 亚洲成a人在线观看| 新呦u视频一区二区| 自拍偷拍18p| 中文字幕中文字幕精品| 欧美一区二区久久| a级网站在线观看| 亚洲av少妇一区二区在线观看| 日日夜夜免费精品视频| 欧美激情手机在线视频| 国产又粗又猛大又黄又爽| 成人亚洲综合| 在线观看国产精品网站| 阿v天堂2017| 青青草在线免费观看| 国产98色在线|日韩| 91精品免费看| 久久99久久99精品免费看小说| 国产aⅴ精品一区二区三区久久| 欧美精品一区二区三区视频| 韩国三级hd中文字幕有哪些| 日韩三级一区| 欧美蜜桃一区二区三区| 污污网站免费观看| 美女羞羞视频在线观看| 久久99日本精品| www.色综合| 精品亚洲视频在线| 欧美v亚洲v| 亚洲人一二三区| 成人片在线免费看| 成 人 黄 色 片 在线播放| 国产一区二区成人久久免费影院 | 婷婷丁香激情综合| 精品国产一二| 国产精品xxxxxx| 日韩国产精品久久久久久亚洲| 欧美综合激情网| 九九精品免费视频| 亚洲三级网页| 国产视频欧美视频| 精品人妻一区二区三区蜜桃视频| 精品国产a一区二区三区v免费| 国产亚洲成av人片在线观看桃| 99久久久久久久久久| 成人国产精品一区二区免费麻豆| 日本二三区不卡| 亚洲国产精品三区| 波多野结衣在线影院| 中文字幕免费不卡在线| 国产精品av一区| 蜜臀av在线观看| 玖玖视频精品| 国产美女高潮久久白浆| 国产亚洲自拍av| 99精品国产99久久久久久福利| 国产女主播一区| 亚洲一区二区三区影院| 久久久久久久久久久99| 新版的欧美在线视频| 欧美中文字幕一区二区三区| 一区二区三区四区毛片| 精品国产18久久久久久洗澡| 在线视频综合导航| 天天干天天av| а√中文在线天堂精品| 欧美伊人精品成人久久综合97| 欧美婷婷精品激情| 日韩区欧美区| 在线不卡a资源高清| xxxxwww一片| 久久人人视频| 精品盗摄一区二区三区| 日韩福利在线视频| 91精品国产视频| 欧美精品成人91久久久久久久| 久久精品无码av| 国产乱一区二区| 日本一区二区在线视频| 色综合999| 综合中文字幕亚洲| 中文字幕无码精品亚洲35| 色久视频在线播放| 亚洲欧美综合色| 久久久久久久中文| 精品国产乱码一区二区三区| 91精品国产91综合久久蜜臀| 亚洲天堂资源在线| 亚洲影视一区| 国产精品女主播| 婷婷亚洲一区二区三区| 成人动漫在线一区| 国产精选在线观看91| yourporn在线观看中文站| 亚洲日本乱码在线观看| 免费黄色一级网站| 天堂资源在线亚洲| 欧美激情视频给我| 亚洲 欧美 变态 另类 综合| 久久精品高清| 欧美在线中文字幕| 国产精品久久777777换脸| 久久亚区不卡日本| 免费观看美女裸体网站| 综合成人在线| 欧美乱妇40p| 色在线观看视频| 欧美激情精品久久久六区热门| 国产成人免费av| 好吊色一区二区三区| 99re6这里只有精品视频在线观看| 精品在线视频一区二区三区| 日本三级视频在线播放| 在线国产电影不卡| 亚洲一级中文字幕| 国产模特精品视频久久久久| 国产精品一国产精品最新章节| 菠萝菠萝蜜在线观看| 欧美精品日韩一本| 国产小视频自拍| 欧美中文字幕| 国产精品久久久久久五月尺| 免费在线稳定资源站| 精品久久香蕉国产线看观看gif| 95视频在线观看| 在线播放一区| 久久一区免费| 伊人久久国产| 在线综合视频播放| 久草视频手机在线| 蜜臀久久99精品久久久久宅男| 日本一区二区三区www| 亚洲天堂一区二区| 夜夜嗨av色一区二区不卡| 天天干天天操天天操| 国产人成一区二区三区影院| 久久久久久久久久久久91| 黑丝美女一区二区| 国产精品网红福利| 麻豆tv免费在线观看| 欧美人狂配大交3d怪物一区| 五月天精品视频| 日产国产高清一区二区三区| 亚洲福利av| a在线免费观看| 日韩欧美电影在线| 日韩欧美视频免费观看| 日本色综合中文字幕| 亚洲一区二区三区精品在线观看| 大胆国模一区二区三区| 久久久之久亚州精品露出| 日韩a在线观看| 精品视频一区二区三区免费| 国产高潮流白浆| 成人综合婷婷国产精品久久蜜臀| 亚洲中文字幕无码专区| 成人亚洲一区| 91亚洲va在线va天堂va国 | 久久精品电影网| 99热这里只有精品在线| 亚洲成人免费电影| 亚欧精品视频一区二区三区| 国产馆精品极品| 成年人午夜视频在线观看 | 在线观看欧美激情| 黄色欧美在线| 国产精品久久不能| 日本加勒比一区| 91成人在线免费观看| 777777国产7777777| 成人h动漫精品| 91插插插插插插插插| 激情综合网址| 亚洲午夜在线观看| 久久电影在线| 成人免费视频网址| 日韩电影大全网站| 久久琪琪电影院| 黄色在线免费看| 亚洲视频在线看| 丰满少妇高潮在线观看| 欧美日韩精品一区二区在线播放| www.xxxx日本| 国产日产欧产精品推荐色| 国产成人精品一区二区在线小狼| 视频一区视频二区在线观看| 国产av熟女一区二区三区 | 国产精品videossex| 国产免费一区二区三区香蕉精| a级大胆欧美人体大胆666| 日韩在线视频网站| 青春有你2免费观看完整版在线播放高清| 欧美日韩高清一区二区三区| 二区视频在线观看| 亚洲国产wwwccc36天堂| 日本中文在线视频| 欧美激情资源网| 国产不卡一二三| 国产不卡视频在线观看| 老司机午夜性大片| 日本不卡在线视频| 黑鬼大战白妞高潮喷白浆| 亚洲精品韩国| 99热亚洲精品| 精品成人国产| 男人添女人下部视频免费| 68国产成人综合久久精品| 亚洲精品无人区| 欧美影院三区| 日韩精品最新在线观看| 欧美猛男男男激情videos| 精品乱码一区二区三区| 成人自拍在线| 91丨九色丨国产| 精品国产鲁一鲁****| 91系列在线播放| 亚洲人体在线| 成人激情视频在线观看| 成人看片网页| 国产精品电影观看| 国产一区二区主播在线| 国产精品久久久久久久久影视| 88xx成人免费观看视频库| 国产97免费视| 性高爱久久久久久久久| 国产精品久久久| 成人毛片免费| 成人精品aaaa网站| 国产亚洲高清在线观看| 亚洲一区二区久久久久久| 日韩在线观看一区二区三区| av一区二区三区免费| 美女日韩一区| 国产伦理久久久| 欧美大胆视频| 日本高清视频一区二区三区| 狠狠综合久久av一区二区蜜桃| 奇米视频888战线精品播放| 久久在线视频| 成人在线免费高清视频| 在线看片欧美| 欧美日韩在线中文| 日本午夜一区二区| 免费网站在线观看黄| 国产成人综合网站| 欧美日韩一区二区三区四区五区六区| 精品一二三四区| 成 人 黄 色 小说网站 s色| 国产精品亚洲专一区二区三区 | 国内精品久久久久影院一蜜桃| 午夜免费视频网站| 不卡的av中国片| 美国美女黄色片| 香蕉成人伊视频在线观看| 中文字幕第31页| 狠狠色噜噜狠狠狠狠97| 136福利视频导航| 亚洲成人av片| 生活片a∨在线观看| 97碰在线观看| 国产美女精品视频免费播放软件| 蜜桃传媒视频第一区入口在线看| 香蕉视频国产精品| 无码无遮挡又大又爽又黄的视频| 国产精品影视在线| 久久亚洲AV无码专区成人国产| 亚洲午夜私人影院| 一区二区三区精彩视频| 亚洲欧美中文字幕在线一区| 欧洲黄色一区| 91久久久在线| 日韩精品免费一区二区在线观看 | 久久久精品国产一区二区三区| 91精品一区国产高清在线gif | 亚洲欧美日韩直播| heyzo高清国产精品| 亚洲自拍偷拍区| 91久久国产| 男人女人黄一级| 2020国产精品久久精品美国| 国产精品6666| 欧美成人乱码一区二区三区| 欧美一区二区三区在线观看免费| 国产成人在线一区| 亚洲制服一区| 国模无码视频一区二区三区| 国产99久久久国产精品| 欧美被狂躁喷白浆精品| 欧美日韩国产色站一区二区三区| 日韩电影免费| 456国产精品| 欧美日本三级| www.国产亚洲| 国产一区在线精品| 亚洲不卡在线播放| 欧美一区二区精品在线| 麻豆传媒在线免费| 91视频8mav| 在线观看国产精品入口| 天天爽夜夜爽视频| 一区二区三区在线高清| 性一交一乱一透一a级| 欧美精品日韩三级| 欧美激情精品| 性高湖久久久久久久久aaaaa| 东方欧美亚洲色图在线| 精品无码人妻一区二区三区| 欧美精品一区二区在线播放| 91老司机福利在线| 久久精品国产精品青草色艺| 亚洲欧美大片| 国产又粗又猛又爽又黄av| 精品视频在线免费看| 麻豆视频在线| 国产91亚洲精品一区二区三区| 亚洲二区在线| 丝袜美腿中文字幕| 欧美最新大片在线看| 日本三级视频在线播放| 91手机在线视频| 国产麻豆综合| 天天舔天天操天天干| 欧美精品第1页| 久久免费电影| 日本欧洲国产一区二区| 久久er99热精品一区二区| 在线观看成人毛片| 日韩av在线看| 澳门av一区二区三区| 国产a级片免费看| 成人精品亚洲人成在线| 五月婷婷视频在线| 在线精品高清中文字幕| 国产在线视频欧美一区| 91免费黄视频| 欧美国产成人在线| 99国产精品一区二区三区 | 巨胸喷奶水www久久久免费动漫| 亚洲最大色综合成人av| 国产91精品在线观看| 午夜婷婷在线观看| 久久亚洲国产精品| 网友自拍一区| 最新免费av网址| 第一福利永久视频精品| 日本美女在线中文版| 国产视频一区二区不卡| 麻豆国产精品视频| x88av在线| 日韩欧美视频一区| 精品欧美一区二区三区在线观看| 亚洲小视频在线播放| 国产婷婷色一区二区三区四区| 99久久久国产精品无码免费| 国产精品99久久久久久人|