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

Dubbo 2.7應用級服務發現踩坑小記

開發 架構
首先覺得他們挺有想法,把dubbo應用級服務發現搬上生產的公司不多。其次當時寫文章時測試并沒有遇到問題,但本著幫讀者解決問題的態度,還是重新寫個demo測試下。

 [[407480]]

背景

本文記錄最近一位讀者反饋的dubbo 2.7.x中應用級服務發現的問題,關于dubbo應用級服務發現的相關介紹可以參考之前的文章《dubbo應用級服務發現初體驗》,這里不再贅述。

讀者反饋他們在基于dubbo 2.7應用級服務發現開發dubbo網關,根據文章《dubbo應用級服務發現初體驗》寫了demo調用時報no provider的錯誤。

首先覺得他們挺有想法,把dubbo應用級服務發現搬上生產的公司不多。其次當時寫文章時測試并沒有遇到問題,但本著幫讀者解決問題的態度,還是重新寫個demo測試下。

問題定位

隨手拿了一個平時測試用的dubbo demo工程(注意不是dubbo源碼中的demo),發現確實注冊不到zookeeper上,接著測試了不同的版本,發現都注冊不了,在2.7.5 ~ 2.7.11版本不報錯,2.7.12版本會報如下的NPE錯誤

  1. 2021-06-16 13:17:31,086 [Dubbo-framework-scheduler-thread-1] ERROR org.apache.dubbo.config.bootstrap.DubboBootstrap (DubboBootstrap.java:1172) -  [DUBBO] refresh metadata and instance failed, dubbo version: 2.7.12, current host: 172.23.233.52 
  2. java.lang.NullPointerException 
  3.  at org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.calInstanceRevision(ServiceInstanceMetadataUtils.java:249) 
  4.  at org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.lambda$refreshMetadataAndInstance$6(ServiceInstanceMetadataUtils.java:272) 
  5.  at java.util.ArrayList.forEach(ArrayList.java:1259) 
  6.  at org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.refreshMetadataAndInstance(ServiceInstanceMetadataUtils.java:271) 
  7.  at org.apache.dubbo.config.bootstrap.DubboBootstrap.lambda$registerServiceInstance$20(DubboBootstrap.java:1170) 
  8.  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
  9.  at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
  10.  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
  11.  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
  12.  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
  13.  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
  14.  at java.lang.Thread.run(Thread.java:748) 

推測服務注冊時存在問題,跟著這個錯誤棧debug,很快就定位到問題

直接導致NPE的是位于org.apache.dubbo.registry.client.AbstractServiceDiscovery#register

在<=2.7.11版本中

  1. @Override 
  2. public final void register(ServiceInstance serviceInstance) throws RuntimeException { 
  3.     this.serviceInstance = serviceInstance; 
  4.     doRegister(serviceInstance); 

而在2.7.12版本中代碼順序被調整成了

  1. @Override 
  2. public final void register(ServiceInstance serviceInstance) throws RuntimeException { 
  3.    doRegister(serviceInstance); 
  4.     this.serviceInstance = serviceInstance; 

為什么調整了代碼順序導致了報錯?

追蹤下來發現NPE的來源是this.serviceInstance為null,原先的代碼先對其賦值再執行doRegister。調整過后的代碼先執行doRegister再賦值,然而在執行diRegister時拋出異常了,不幸的是這個異常被吃掉了,doRegister的實現如下

  1. @Override 
  2. public final void register(ServiceInstance serviceInstance) throws RuntimeException { 
  3.  
  4.     assertDestroyed(REGISTER_ACTION); 
  5.     assertInitialized(REGISTER_ACTION); 
  6.  
  7.     executeWithEvents( 
  8.             of(new ServiceInstancePreRegisteredEvent(serviceDiscovery, serviceInstance)), 
  9.             () -> serviceDiscovery.register(serviceInstance), 
  10.             of(new ServiceInstanceRegisteredEvent(serviceDiscovery, serviceInstance)) 
  11.     ); 

而這個executeWithEvents會將異常以事件的形式發出去

  1. protected final void executeWithEvents(Optional<? extends Event> beforeEvent, 
  2.                                        ThrowableAction action
  3.                                        Optional<? extends Event> afterEvent) { 
  4.     beforeEvent.ifPresent(this::dispatchEvent); 
  5.     try { 
  6.         action.execute(); 
  7.     } catch (Throwable e) { 
  8.         dispatchEvent(new ServiceDiscoveryExceptionEvent(this, serviceDiscovery, e)); 
  9.     } 
  10.     afterEvent.ifPresent(this::dispatchEvent); 

然而這個事件丟出去之后并沒有被處理,也就是說這個異常被吃掉了。這也就是為什么之前的dubbo版本沒有拋出異常,也不能注冊上服務。

這個異常是什么?

  1. va.lang.NoClassDefFoundError: org/apache/curator/x/discovery/ServiceDiscovery 

其實只是少引入了一個依賴。加入以下以下就能解決這個問題

  1. <dependency> 
  2.     <groupId>org.apache.dubbo</groupId> 
  3.     <artifactId>dubbo-registry-zookeeper</artifactId> 
  4.     <version>${version}</version> 
  5. </dependency> 

 

為什么當時寫文章時沒有遇到這個問題?

恰好本次調試是基于一個demo工程,《dubbo應用級服務發現初體驗》文章是直接在dubbo源碼中修改demo,源碼中已經把依賴都引入了

更進一步

其實是個小問題,但對用戶來說挺困惑的,為什么沒有報錯但也沒法注冊服務?如果不是2.7.12有個附帶的報錯,可能排查起來更加困難。

于是提了個issue和社區的朋友交流下,得出的結論是2.7.x的應用級服務發現不再維護,3.x會繼續維護。

https://github.com/apache/dubbo/issues/8061

提個issue也是讓有問題的用戶能搜索到,少走彎路。

順便也提了個PR,加一行log,方便直觀的發現這個問題。

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

新版本(>=2.7.13)如果有朋友再遇到這個問題,會直接打印出錯誤,就像這樣

  1. 2021-06-16 16:58:02,210 [main] ERROR org.apache.dubbo.registry.client.EventPublishingServiceDiscovery (EventPublishingServiceDiscovery.java:287) -  [DUBBO] Execute action throws and dispatch a ServiceDiscoveryExceptionEvent, dubbo version: 2.7.12, current host: 172.23.233.52 
  2. java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: org/apache/curator/x/discovery/ServiceDiscovery 
  3.  at org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery.doRegister(ZookeeperServiceDiscovery.java:92) 
  4.  at org.apache.dubbo.registry.client.AbstractServiceDiscovery.register(AbstractServiceDiscovery.java:33) 
  5.  at org.apache.dubbo.registry.client.EventPublishingServiceDiscovery.lambda$register$0(EventPublishingServiceDiscovery.java:159) 
  6.  at org.apache.dubbo.registry.client.EventPublishingServiceDiscovery.executeWithEvents(EventPublishingServiceDiscovery.java:285) 
  7.  at org.apache.dubbo.registry.client.EventPublishingServiceDiscovery.register(EventPublishingServiceDiscovery.java:157) 
  8.  at org.apache.dubbo.config.bootstrap.DubboBootstrap.lambda$doRegisterServiceInstance$21(DubboBootstrap.java:1192) 
  9.  at java.util.ArrayList.forEach(ArrayList.java:1259) 
  10.   ... 

既然2.7.x的應用級服務發現不再更新,下次寫一篇分析3.0版本的應用級服務發現源碼的文章吧~

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

2023-09-22 11:29:11

JavasubList

2024-08-06 09:08:59

2021-09-03 08:50:50

Dubbo服務引用

2023-01-18 23:20:25

編程開發

2020-09-15 08:46:26

Kubernetes探針服務端

2017-10-24 13:02:29

2025-04-09 09:31:29

2025-10-27 01:11:00

2023-02-20 08:11:04

2017-05-05 08:12:51

Spark共享變量

2021-10-28 19:10:02

Go語言編碼

2024-04-10 08:39:56

BigDecimal浮點數二進制

2021-09-03 11:15:18

場景sql配置

2024-04-01 08:05:27

Go開發Java

2018-07-13 09:38:54

2017-07-17 15:46:20

Oracle并行機制

2021-05-27 22:46:00

Nacos Clien版本Nacos

2021-10-15 06:49:37

MySQL

2024-10-09 08:09:11

2025-05-27 01:55:00

MySQL數據庫工具鏈
點贊
收藏

51CTO技術棧公眾號

啊啊啊一区二区| 国产欧美一区二区三区不卡高清| 国产白丝一区二区三区| 欧美激情三区| 亚洲精品欧美综合四区| 精品国产中文字幕| 五月婷婷激情五月| 亚洲综合色网| 日韩国产欧美精品一区二区三区| 成人黄色一区二区| av文字幕在线观看| 成人午夜在线播放| 国产成人激情小视频| 色哟哟一一国产精品| 黄色欧美网站| 欧美日韩电影在线| 国产美女网站在线观看| 日本中文字幕在线播放| 成人av网站在线观看免费| 国产精品海角社区在线观看| 一区二区三区四区欧美| 91成人在线免费| 极品少妇一区二区三区| 色多多国产成人永久免费网站 | 91国产在线播放| 欧美三日本三级少妇99| 国产精品久久久久久久久妇女 | 婷婷av一区二区三区| 美女尤物国产一区| 欧美在线视频导航| 久久久久久久黄色| 久久激情电影| 亚洲人成电影网| 99久久免费看精品国产一区| 国产亚洲高清在线观看| 欧美日韩亚洲综合| 激情五月亚洲色图| 色老头在线一区二区三区| 亚洲制服丝袜一区| 亚洲国产精品影视| 在线视频婷婷| 国产日韩视频一区二区三区| 欧美美乳视频网站在线观看| 天天综合天天综合| 成人av在线资源网| 国产高清自拍一区| 精品人妻伦一二三区久久| 激情五月婷婷综合| 成人福利视频网| 中文字幕av免费观看| 日韩在线观看一区二区| 日本欧美一级片| 成人毛片18女人毛片| 尤物网精品视频| 久久久久久久久久久免费精品| 男女羞羞免费视频| 午夜天堂精品久久久久| 九九热这里只有精品免费看| 杨钰莹一级淫片aaaaaa播放| 亚洲激情中文在线| 久久国产精品免费视频| 亚洲成人生活片| 欧美日韩一卡| 午夜精品美女自拍福到在线| www日韩精品| 国产亚洲精品自拍| 国产成人精品av在线| 懂色av蜜臀av粉嫩av喷吹| 蜜桃一区二区三区四区| 91精品国产自产在线| 国产精品无码专区av免费播放| 国产在线精品不卡| 国产v亚洲v天堂无码| wwwxxxx国产| 成人不卡免费av| 欧美日韩免费观看一区| 成人免费黄色网页| 中文字幕综合网| 800av在线免费观看| а√天堂中文在线资源8| 色综合天天综合网国产成人综合天 | 国产欧美婷婷中文| 精品国自产在线观看| 暴力调教一区二区三区| 日本午夜精品电影| a视频在线观看免费| 午夜精品国产更新| xx欧美撒尿嘘撒尿xx| 欧美中文高清| 亚洲欧洲第一视频| 日韩va亚洲va欧美va清高| 亚洲高清自拍| 国产精国产精品| 成 人 黄 色 片 在线播放| 9色porny自拍视频一区二区| 日韩欧美一区二区在线观看 | 精品黑人一区二区三区在线观看 | 国产一二三av| 午夜日韩av| 国产精品18久久久久久首页狼| 国产精品亚洲lv粉色| 97se亚洲国产综合自在线不卡| 日韩欧美亚洲日产国产| 好久没做在线观看| 欧美性高清videossexo| 99re这里只有| 欧美a级成人淫片免费看| 97在线视频一区| 国产伦精品一区二区三区四区| av成人免费在线| 中文字幕久精品免| 亚洲插插视频| 日韩欧美成人一区二区| 日本精品久久久久中文| 亚洲韩日在线| 91精品视频播放| 欧美色综合一区二区三区| 樱花影视一区二区| 欧美性xxxx在线播放| 天天爱天天做天天操| 色一区二区三区| 欧美一卡2卡3卡4卡| 日本少妇xxxxx| 日韩视频一区二区三区在线播放免费观看 | 精品一区二区日本| aa在线视频| 欧美日韩精品一区二区天天拍小说| av av在线| 伊人久久大香线蕉综合四虎小说| 国产精品白嫩初高中害羞小美女| 色综合久久久久久| 亚洲国产日日夜夜| 中文字幕欧美视频| 91综合在线| 国产精品美女主播在线观看纯欲| 亚州av在线播放| 亚洲一区二区三区四区在线免费观看 | 牛牛电影国产一区二区| 欧美日韩免费高清一区色橹橹 | 高清一区二区三区日本久| 国产一区二区在线视频观看| 国产日韩欧美综合一区| 北条麻妃在线一区| 深爱激情综合网| 97视频在线观看免费高清完整版在线观看 | 最新中文字幕av| 久久三级福利| 欧美系列一区| 成人美女大片| 精品无人区太爽高潮在线播放| 日本一区二区不卡在线| 不卡在线视频中文字幕| 免费特级黄色片| 51精品国产| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品久久久久精| 国产精品久久久久9999吃药| 欧美成人乱码一二三四区免费| 欧洲杯足球赛直播| 国产精品中文字幕在线| 在线免费看a| 欧美三电影在线| 国产精品麻豆免费版现看视频| 久久精品二区亚洲w码| 在线不卡视频一区二区| 成人激情久久| 欧美肥臀大乳一区二区免费视频| 亚洲成人777777| 亚洲h在线观看| 免费a级黄色片| 日本不卡中文字幕| 免费久久久久久| 亚洲一区二区三区四区电影| 欧美激情精品久久久久久久变态 | 中文字幕免费精品一区高清| 91九色蝌蚪91por成人| 老牛精品亚洲成av人片| 日韩中文综合网| 国产视频第二页| 亚洲成人第一页| 香蕉视频久久久| 国产毛片精品视频| 免费无码不卡视频在线观看| 欧美日韩水蜜桃| 亚洲伊人成综合成人网| 2018av在线| 亚洲性生活视频| 精品国产伦一区二区三区| 香蕉加勒比综合久久| 五月婷六月丁香| 国产成人免费视频一区| 男人操女人免费软件| 91久久高清国语自产拍| 国外成人在线视频网站| 另类一区二区三区| 午夜免费日韩视频| av影片免费在线观看| 欧美成人aa大片| 中日韩av在线| 亚洲成a人片在线观看中文| 久久亚洲无码视频| 国产成人aaa| 国产精品久久久毛片| 亚洲三级电影在线观看| 亚洲欧美日本国产有色| 久久精品色播| 91网在线免费观看| 国产日韩另类视频一区| 欧美精品成人91久久久久久久| 黄色av网站在线| 精品国产91乱码一区二区三区 | 麻豆成人精品| 大胆欧美熟妇xx| 奇米影视亚洲| 久久婷婷开心| 日本一区二区三区电影免费观看| 日本高清不卡在线| 免费电影视频在线看| 中文字幕日韩电影| 天堂中文在线资| 亚洲欧洲日韩精品在线| 日韩在线欧美在线| 青青草视频在线观看| 精品少妇一区二区三区免费观看| 极品国产91在线网站| 亚洲国产精品久久一线不卡| 182在线观看视频| 国产精品天干天干在观线| 亚洲黄色在线网站| 成人精品视频一区二区三区尤物| 国产精品自在自线| 青青青伊人色综合久久| 国产成人无码一二三区视频| 影音先锋亚洲一区| 妺妺窝人体色777777| 自拍视频亚洲| 特色特色大片在线| 婷婷久久综合| 中文字幕久久一区| 97精品国产| 亚洲一区美女| 欧美3p在线观看| 伊人色综合久久天天五月婷| 日本一区二区高清不卡| 亚洲成色www久久网站| 国产欧美日韩视频在线| 欧美三日本三级少妇三99| 天天躁日日躁成人字幕aⅴ| 极品校花啪啪激情久久| 欧美成人专区| 免费精品视频一区二区三区| 天海翼亚洲一区二区三区| 美国av一区二区三区| 亚洲动漫精品| 欧美一区二区三区四区夜夜大片| 美女毛片一区二区三区四区最新中文字幕亚洲| 国产精品免费区二区三区观看| 91国内精品| 国产在线观看一区| 亚洲精品国产动漫| 日本一区二区免费看| 波多野结衣的一区二区三区| 日韩av高清| 91亚洲成人| 国产人妻人伦精品| 99人久久精品视频最新地址| 国产美女无遮挡网站| 日韩黄色小视频| 中文字幕免费高清在线| 国产成人免费视频网站| www.日本高清| 国产亚洲欧美激情| 美女福利视频网| 亚洲一区电影777| 在线观看免费av片| 欧美日韩一区二区电影| 亚洲a视频在线观看| 亚洲精品小视频| 天堂资源在线中文| 中文字幕第一区| 国产精品视频免费| 国产一区二区三区av在线| 99精品在线免费观看| 国产精品大全| 亚洲精品动态| 中文字幕99| 亚洲福利免费| 男女啪啪网站视频| 国产精品一区2区| 一本加勒比波多野结衣| 欧美激情综合网| 精品爆乳一区二区三区无码av| 欧美三级免费观看| 91在线视频国产| 亚洲精品乱码久久久久久按摩观| 岛国在线视频| 久久久久久久国产| 素人一区二区三区| 国产精品一区二区三区不卡| 日韩a一区二区| 国产一区二区网| 韩国三级在线一区| 真人bbbbbbbbb毛片| 亚洲女与黑人做爰| 国产精品视频123| 日韩欧美国产一区二区在线播放| 久久精品色图| 国内精品久久久久久| 欧美一级做a| 欧美高清性xxxxhd| 国产精品分类| 久久久久xxxx| 久久免费国产精品| 欧美激情国产精品免费| 欧美日韩一区在线| 色鬼7777久久| 欧美—级高清免费播放| 亚洲精品伦理| 日本不卡免费新一二三区| 在线欧美三区| 国产成人精品综合久久久久99| 国产欧美精品一区二区色综合| 日韩女同强女同hd| 欧美一区二区网站| 在线国产91| 国产精品黄视频| 日韩精品社区| 成人免费性视频| 国产精品一区二区久久不卡| 久久午夜精品视频| 在线精品亚洲一区二区不卡| 天天av天天操| 日韩av中文字幕一区| 一级全黄肉体裸体全过程| 秋霞影院一区二区| 日韩人妻无码一区二区三区| 亚洲成av人片在线观看无码| 精品人妻一区二区三区四区不卡| 自拍偷拍亚洲精品| 韩日精品一区| 日韩高清av| 日韩影院免费视频| 这里只有久久精品| 色综合久久88色综合天天免费| 五月天激情婷婷| 国产91成人在在线播放| 特黄特色欧美大片| 欧美aⅴ在线观看| 久久日韩精品一区二区五区| 亚洲天堂一区在线| 日韩精品视频免费专区在线播放| 1024在线看片你懂得| 国产午夜精品在线| 亚洲精品社区| 人妻熟女aⅴ一区二区三区汇编| 五月婷婷激情综合网| 深爱五月激情五月| 欧美中文字幕精品| 欧美日韩播放| 在线观看av网页| 中文字幕日韩av资源站| 99国产精品99| 欧美激情视频在线观看| 红杏视频成人| 蜜臀久久99精品久久久酒店新书| 国产区在线观看成人精品| 免费在线观看av的网站| xvideos亚洲人网站| 亚洲视频一起| 国产91在线免费| 欧美国产精品中文字幕| 国产精品视频在线观看免费| 欧美另类极品videosbest最新版本 | 亚洲都市激情| 污污的网站18| 亚洲精品自拍动漫在线| 欧美一级在线免费观看| 欧美最近摘花xxxx摘花| 日韩电影免费在线观看| 免费观看黄网站| 精品久久久一区二区| 电影av在线| 成人18视频| 日韩av午夜在线观看| 久久久精品视频免费观看| 亚洲精品电影网在线观看| 一区二区视频免费完整版观看| 在线观看成人av| 成人黄色网址在线观看| 日本欧美www| 欧美激情在线观看视频| 精品国产乱码| 日韩成人精品视频在线观看| 亚洲福利电影网| av网站在线免费播放| 国产欧美日韩综合精品二区| 日本成人在线视频网站| 日本中文字幕免费| 久久精品国产综合| 天美av一区二区三区久久|