精品欧美一区二区三区在线观看 _久久久久国色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一区二区三区四区五区| 国产精品系列在线播放| 日韩在线视频观看| 蜜臀久久99精品久久久酒店新书 | 中文字幕永久免费| а√天堂中文在线资源bt在线| 亚洲免费资源| 国产偷国产偷精品高清尤物| 91国内在线视频| 巨乳女教师的诱惑| 超碰免费在线播放| 国产精品亚洲成人| 国产精品6699| 99国产精品免费| 91tv亚洲精品香蕉国产一区| 国产午夜亚洲精品不卡| 亚洲最大的网站| avtt天堂在线| 91麻豆精品激情在线观看最新 | 国产成人在线观看免费网站| 久久精品一本久久99精品| 另类小说色综合| 午夜视频在线观看网站| 久久99国产精品久久99| 日韩在线播放视频| 原创真实夫妻啪啪av| 日韩精品极品| 91免费版在线| 国产精品h片在线播放| 久久视频免费看| 国产精品久久久久久久久久白浆| 亚洲影视在线观看| 精品国产乱码久久久久久郑州公司 | 极品国产人妖chinesets亚洲人妖| 一区二区三区四区在线免费观看 | 久久影视一区| 欧美美女喷水视频| 米仓穗香在线观看| 不卡视频免费在线观看| 日韩香蕉视频| 亚洲欧洲在线播放| 毛片毛片毛片毛| 欧美日韩色网| 成人美女在线视频| 国产精品999999| 亚洲另类在线观看| 99久久国产综合精品成人影院| 欧美一区二区三区在线| 国产96在线 | 亚洲| 精品久久av| 国产精品一区二区你懂的| 国产精品久久久久77777| 日本中文在线视频| 欧美大片网址| 欧美高清dvd| 五月婷婷丁香色| 第四色日韩影片| 国产欧美精品国产国产专区| 91丝袜脚交足在线播放| 99久久国产热无码精品免费| 亚洲深夜影院| 久久亚洲精品视频| 亚洲av无码一区二区三区观看| 成人国产精选| 欧美丝袜丝交足nylons图片| 美女扒开大腿让男人桶| 在线激情小视频| 99精品桃花视频在线观看| 国产一区玩具在线观看| 91国产丝袜播放在线| 91精品一区二区三区综合| 日韩精品免费视频| 91精品国产三级| 亚洲午夜精品| 欧美精选午夜久久久乱码6080| 亚洲第一天堂久久| 精品中文视频| 欧美日精品一区视频| 无码人妻丰满熟妇区96| 在线免费av导航| 中文字幕不卡在线观看| 精品欧美一区二区在线观看视频| 精品久久av| 亚洲色图在线播放| 日韩免费一区二区三区| 五月婷婷丁香六月| 成人性生交大合| 欧美激情第六页| 国产视频中文字幕在线观看| 国产精品久久久久久久久免费樱桃 | 国产精品视频一区二区三区综合 | 日韩av影院| 日韩中文字幕免费看| 久草福利资源在线观看| 丝袜诱惑亚洲看片| 欧美中文字幕在线播放| 亚洲国产精品成人无久久精品| 亚洲最新av| www.亚洲一区| 国产成人免费观看视频| 国产欧美激情| 成人激情综合网| 一二三四区在线| 久久亚洲国产精品一区二区| 国产一区二区香蕉| 色欲av伊人久久大香线蕉影院| 蜜桃av一区二区| 国产精品黄色av| 精品国产av 无码一区二区三区| 丝瓜av网站精品一区二区| 91久久在线播放| 无码人妻精品一区二区蜜桃色欲| 婷婷亚洲图片| 日本精品久久久久久久| 日本少妇裸体做爰| 日本美女一区二区三区视频| 欧美亚洲一级片| 日本三级免费看| 蜜桃视频免费观看一区| 品久久久久久久久久96高清| 天天摸天天碰天天爽天天弄| 国产亚洲欧美激情| 国产精品国三级国产av| 国产福利在线播放麻豆| 欧美日韩在线一区| 精品99在线视频| 美女搞黄视频在线观看| 欧美久久高跟鞋激| 先锋影音av在线| 神马电影久久| 亚洲欧美制服另类日韩| 欧美人妻精品一区二区三区| 亚洲影音一区| 国产福利成人在线| 成人精品在线播放| 国产精品久久久久久久久图文区| 国产成人久久婷婷精品流白浆| 欧美亚洲黄色| 日韩亚洲欧美中文三级| 久久日免费视频| 天堂成人国产精品一区| 久久久7777| 蜜桃视频在线入口www| 久久婷婷国产综合国色天香| 91精品国产吴梦梦| 性欧美hd调教| 欧美一区二区三区四区高清| 亚洲人成人无码网www国产| 激情久久综合| 88xx成人精品| 欧美在线 | 亚洲| 久久99国产精品麻豆| 亚洲在线不卡| 二区在线播放| 欧美精品一二三四| 日本一级特级毛片视频| 日韩av成人高清| 亚洲欧美日产图| av网站在线看| 日韩午夜精品电影| 精品亚洲永久免费| 国产成人免费网站| 国产精品自拍片| 欧美特黄aaaaaaaa大片| 日韩精品免费综合视频在线播放| 国产大片aaa| 99在线视频精品| av动漫免费观看| 成人日韩视频| 久久久久久中文字幕| 日本中文字幕在线| 国模无码大尺度一区二区三区| 国产精品视频精品| 手机在线精品视频| 亚洲国产精品一区二区久久恐怖片| 成年人视频在线免费| 国产伦精品一区二区三区视频| 国产成人激情小视频| 午夜小视频在线| 欧美刺激午夜性久久久久久久| 日本一区二区在线免费观看| 不卡在线一区二区| 国产精品自产拍在线观看| 黄色av网站在线播放| 日韩欧美国产电影| 日本熟妇毛茸茸丰满| 成人综合激情网| 人妻少妇精品久久| 女厕嘘嘘一区二区在线播放| 国产一区欧美二区三区| caoporn免费在线| 亚洲国模精品一区| 国产精品视频久久久久久久| 中文字幕一区二区三区四区 | 精品午夜福利视频| 久久精品夜色噜噜亚洲a∨| 欧美日韩午夜爽爽| 女人抽搐喷水高潮国产精品| 国产成人精品视频| 午夜激情视频在线观看| 日韩av在线播放资源| 真实新婚偷拍xxxxx| 粉嫩aⅴ一区二区三区四区| 热re99久久精品国产99热| 国产原创一区| 亚洲最新av在线| 国产精品怡红院| 国产亚洲女人久久久久毛片| 久久精品国产露脸对白| 在线亚洲精品| 樱空桃在线播放| 欧美a在线观看| 国产91久久婷婷一区二区| av网址在线| 中文字幕国产精品久久| www毛片com| 亚洲乱码国产乱码精品精可以看| 黄色正能量网站| 国产色综合网| 亚洲成人动漫在线| 狠狠综合久久av一区二区蜜桃| 国产高清不卡av| 毛片av在线| 日韩大片在线观看视频| 国产成人精品无码高潮| 欧美在线短视频| japanese国产在线观看| 午夜一区二区三区在线观看| 中文字幕在线观看成人| 久久99久久久久| 国内外免费激情视频| 美女精品网站| 视频一区国产精品| 好吊妞视频这里有精品| 成人网在线观看| 亚洲电影有码| 97久久国产精品| av黄色在线观看| 日韩电影在线观看中文字幕| www.午夜激情| 日韩一区二区在线观看视频播放| 中文字幕网址在线| 91精品福利在线| 免费91在线观看| 韩国一区二区三区| 青青在线免费观看视频| 天天揉久久久久亚洲精品| 日本视频一区在线观看| 羞羞答答一区二区| 国产精品中文字幕在线| 伊人久久综合一区二区| 欧美一级在线亚洲天堂| 黄色软件视频在线观看| 最近2019中文字幕在线高清 | 亚洲免费影视第一页| 日批免费在线观看| 亚洲第一福利网站| 国产 欧美 自拍| 日韩欧美高清dvd碟片| 超碰免费在线97| 精品久久人人做人人爽| 亚洲黄色小说网| 欧美日韩视频免费播放| 91视频最新网址| 不卡av在线免费观看| 亚洲精品国产成人av在线| av在线不卡观看免费观看| 国产激情视频网站| 久久嫩草精品久久久精品一| 欧美一区二区三区粗大| 中文字幕av一区二区三区| 最新黄色av网址| 一区二区国产盗摄色噜噜| 午夜性福利视频| 91丝袜高跟美女视频| 精品人妻一区二区三区香蕉| 久久久久久久久岛国免费| 性欧美一区二区| 国产精品久久久久天堂| 久久这里只有精品国产| 精品二区三区线观看| 国产免费嫩草影院| 亚洲激情中文1区| www.97视频| 国产精品日产欧美久久久久| 日韩欧美视频免费观看| 亚洲视频在线一区| 精品在线视频免费| 在线观看成人小视频| 欧美videossex极品| 欧美午夜一区二区三区免费大片| 国产精品玖玖玖| 亚洲激情自拍图| 日本成人网址| 欧美一级大片在线观看| 成人综合网站| 动漫一区二区在线| 国内精品国产成人国产三级粉色| 日韩妆和欧美的一区二区| 久久精品一区二区不卡| 欧美网站免费观看| 久久精品国产精品亚洲红杏| 美国黄色一级毛片| 亚洲日本在线看| 在线精品免费视| 欧美一区二区日韩一区二区| 日韩porn| 欧美另类高清videos| 美女隐私在线观看| 久久久久久久网站| 久久天堂久久| 日本欧美精品久久久| 国产精品sm| 亚洲一区二区三区在线观看视频 | 成人激情免费电影网址| www.日本高清视频| 欧美日韩在线免费| 中文字幕av片| 亚洲欧美日韩高清| 久久久123| 成人激情视频网| 欧美日韩国产一区二区三区不卡| 亚洲自偷自拍熟女另类| 国产精品夜夜爽| 最新黄色av网址| 欧美日韩一区二区欧美激情| 奇米影视888狠狠狠777不卡| 欧美激情国产精品| 开心久久婷婷综合中文字幕| 欧美中日韩一区二区三区| 夜夜嗨网站十八久久 | 成人免费三级在线| 欧美日韩激情在线观看| 在线不卡的av| 一区二区久久精品66国产精品 | 男人天堂资源在线| 欧美在线xxx| 国产精品99久久免费观看| 免费看日b视频| 天天做天天爱天天爽综合网| 精品日韩久久久| 久久久国产精品不卡| 日韩精品一卡二卡| 精品国产百合女同互慰| av电影免费在线观看| 91久久精品一区| 99久久国产综合精品成人影院| 亚洲色图久久久| 国产乱码精品一区二区三区忘忧草| 一级黄色录像毛片| 欧美日韩综合不卡| 永久免费在线观看视频| 欧美一级淫片播放口| 国产在线观看91一区二区三区| 欧美精品第三页| 国产午夜亚洲精品不卡| 不卡av电影在线| 久久久国产一区二区三区| 成人黄色免费网站| 一区二区三区视频在线播放| 国产麻豆午夜三级精品| 欧美成人精品激情在线视频| 精品国产三级a在线观看| 欧洲黄色一区| 精品久久久久久中文字幕动漫 | 99久久国产综合色|国产精品| 亚洲黄色一区二区| 亚洲精品影视在线观看| av网站无病毒在线| 国产精品久久中文| 成人免费看片39| 亚洲黄色片免费看| 精品国产老师黑色丝袜高跟鞋| 日本天堂影院在线视频| 国产精品看片资源| 你懂的视频一区二区| 国产一级伦理片| 色综合久久久久| 国产区视频在线| 日本国产精品视频| 97偷自拍亚洲综合二区| 中文字幕一区二区三区四| 同产精品九九九| av成人手机在线| 亚洲最大福利视频| 国产精品日韩欧美一区| 91香蕉视频在线播放| 精品国产91久久久久久久妲己| 中文在线а√天堂| 欧美高清性xxxxhd| 国产成人精品网址| 日本视频网站在线观看| 久久精品国亚洲| 国产精选一区|