亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ZooKeeper注冊中心為什么沒有zookeeper節點

發布時間:2021-09-10 13:39:05 來源:億速云 閱讀:374 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關ZooKeeper注冊中心為什么沒有zookeeper節點,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

概述

    具體原因:因為ZooKeeper數據不一致導致

    修復操作:修改ZooKeeper配置如下,刪除ZooKeeper所有數據、重啟ZooKeeper后,重啟所有dubbo providers/consumers服務。

                    一段時間后,未出現此類問題。

    ZooKeeper配置文件修改為:

clientPort=2181
dataDir=/data/zk-data
dataLogDir=/data/zk-logs
tickTime=5000
initLimit=10
syncLimit=20
maxClientCnxns=60
server.0=zk-0:2888:3888
server.1=zk-1:2888:3888
server.2=zk-2:2888:3888

運行環境:

    dubbo版本號:2.5.3

    ZooKeeper版本號:3.4.11

    im-service是dubbo提供方(provider)

    im-web是dubbo消費方(consumer)

問題場景:

    部分dubbo接口調用失敗,查看consumer方調用日志:

ZooKeeper注冊中心為什么沒有zookeeper節點

這種Forbid consumer問題嘛,一般來說也就檢查ZooKeeper注冊中心中,對應的/providers節點下是否有提供方,如果沒有提供方,就是看看provider方是否啟動正常。

所以我就查看了zk-0節點上/dubbo/com.newbanker.im.service.WbsExpertService/providers節點的子節點:

ls /dubbo/com.newbanker.im.service.WbsExpertService/providers

發現providers子節點不存在。也就是說ZooKeeper注冊中心認為dubbo providers沒有正常啟動,所以看一下dubbo providers的運行狀態:

ZooKeeper注冊中心為什么沒有zookeeper節點

圖示:dubbo provider運行正常。此時就很迷茫了:docker認為服務提供方im-service項目運行正常,但是dubbo注冊中心ZooKeeper卻認為提供方未注冊。這里面肯定有什么誤會。

解決方案:

    重啟im-service服務

    重啟后,一切ok!

猜測原因:

    Dubbo項目啟動后,沒有提供者。項目啟動日志正常,DUBBO服務啟動沒有注冊到zookeeper。

    tickTime修改為5000之后:2019-09-17記:目前還未發現此類問題。

延伸問題

今天又發現類似問題了,但是有一點不同的是:

  • ZooKeeper zk-0節點中/dubbo/com.newbanker.im.service.WbsExpertService/providers的子節點存在。

  • ZooKeeper zk-1節點中/dubbo/com.newbanker.im.service.WbsExpertService/providers的子節點存在。

  • ZooKeeper zk-2節點中/dubbo/com.newbanker.im.service.WbsExpertService/providers的子節點存在

遇到這種數據不一致的問題,我最初猜測ZooKeeper集群內部應該是正在做數據同步,而導致的數據不一致情況。

于是使用./bin/zkService.sh status命令查看一下各個ZooKeeper節點的狀態,發現一切正常:zk-2節點為leader,zk-0、zk-1節點都是follower.......也就是,遇到了ZooKeeper集群中,各個節點中數據不一致的情況了。這和當初說好的數據一致性對不上號啊!!

抱著試一試的心態,百度了一下,還找到了:

ZooKeeper數據不一致的定位過程 (3.4.11)

這篇博客說是ZooKeeper 3.4.11版本存在bug,而此bug在ZooKeeper 3.4.12版本已經fixed。

于是,我導出了ZooKeeper日志看了一下:

ZooKeeper注冊中心為什么沒有zookeeper節點

世上為何有如此巧合之事?我司用的ZooKeeper還真是3.4.11版本....

解決方案:

    沒錯,還是重啟im-service服務!(~ ̄▽ ̄)~ 

    由于替換ZooKeeper版本影響范圍未知,我們暫時沒有替換ZooKeeper版本到3.4.12,而是把dubbo provider項目重啟了一下。重啟之后,ZooKeeper數據一致了,dubbo consumer調用接口也正常了。

    后續還會跟進此bug的各種原因。。。。。

思考:

    上面的【猜測原因】里的博客描述,是tickTime時間太小導致的。

    但是根據上面的【延伸問題】看,根本原因還在ZooKeeper,或者說,不管是不是tickTime太小,ZooKeeper的數據都不能出現不一致的情況。

    現在的焦點工作就是:找到ZooKeeper數據不一致的原因并解決之!

又一個ZooKeeper數據不一致的bug:

(下圖:MarketingActivityService消費異常)

ZooKeeper注冊中心為什么沒有zookeeper節點

(下圖:ZooKeeper zk-0數據)

ZooKeeper注冊中心為什么沒有zookeeper節點

(下圖:ZooKeeper zk-1數據)

ZooKeeper注冊中心為什么沒有zookeeper節點

(下圖:ZooKeeper zk-2數據)

ZooKeeper注冊中心為什么沒有zookeeper節點

為了證明上圖沒有問題,我還找了運維同事,進入docker pod中,查看ZooKeeper數據:

ZooKeeper zk-0數據:(有一個dubbo://      說明有一個provider)

ls /dubbo/com.newbanker.ac.service.MarketingActivityService/providers
[dubbo://10.233.81.217:23880/com.newbanker.ac.service.MarketingActivityService?accepts=1000&anyhost=true&application=ac-service&buffer=8192&charset=UTF-8&client=netty&default.delay=-1&default.retries=0&default.service.filter=entIdReceiveFilter&default.timeout=60000&delay=-1&dubbo=2.5.3&interface=com.newbanker.ac.service.MarketingActivityService&iothreads=9&methods=preview,costUpdate,release,selectByName,unrelease,appView,unrecommend,update,recommend,delete,timingDateUpdate,selectByNo,exportMarketingActivity,timingDateAdd,view,top,timingDateDelete,labelCount,updateChannel,queryAppPage,typeCount,selectByNos,add,previewQrcode,timingRelease,statusCount,cusView,list,untop,updateEvaluationPeriod,queryPage&payload=8388608&pid=8&queues=0&revision=0.0.1-SNAPSHOT&serialization=hessian2&server=netty&side=provider&threadpool=fixed&threads=100&timestamp=1567157143813&version=1.0]

ZooKeeper zk-1數據:(沒有provider)

ls /dubbo/com.newbanker.ac.service.MarketingActivityService/providers
[]

ZooKeeper zk-2數據:(有兩個dubbo://      說明有兩個provider)

ls /dubbo/com.newbanker.ac.service.MarketingActivityService/providers
[dubbo://10.233.112.197:23880/com.newbanker.ac.service.MarketingActivityService?accepts=1000&anyhost=true&application=ac-service&buffer=8192&charset=UTF-8&client=netty&default.delay=-1&default.retries=0&default.service.filter=entIdReceiveFilter&default.timeout=60000&delay=-1&dubbo=2.5.3&interface=com.newbanker.ac.service.MarketingActivityService&iothreads=9&methods=preview,costUpdate,release,selectByName,unrelease,appView,update,unrecommend,recommend,delete,timingDateUpdate,selectByNo,exportMarketingActivity,timingDateAdd,view,top,timingDateDelete,labelCount,updateChannel,queryAppPage,typeCount,selectByNos,add,previewQrcode,timingRelease,statusCount,cusView,list,untop,updateEvaluationPeriod,queryPage&payload=8388608&pid=8&queues=0&revision=0.0.1-SNAPSHOT&serialization=hessian2&server=netty&side=provider&threadpool=fixed&threads=100&timestamp=1567391428907&version=1.0, 
dubbo://10.233.81.217:23880/com.newbanker.ac.service.MarketingActivityService?accepts=1000&anyhost=true&application=ac-service&buffer=8192&charset=UTF-8&client=netty&default.delay=-1&default.retries=0&default.service.filter=entIdReceiveFilter&default.timeout=60000&delay=-1&dubbo=2.5.3&interface=com.newbanker.ac.service.MarketingActivityService&iothreads=9&methods=preview,costUpdate,release,selectByName,unrelease,appView,unrecommend,update,recommend,delete,timingDateUpdate,selectByNo,exportMarketingActivity,timingDateAdd,view,top,timingDateDelete,labelCount,updateChannel,queryAppPage,typeCount,selectByNos,add,previewQrcode,timingRelease,statusCount,cusView,list,untop,updateEvaluationPeriod,queryPage&payload=8388608&pid=8&queues=0&revision=0.0.1-SNAPSHOT&serialization=hessian2&server=netty&side=provider&threadpool=fixed&threads=100&timestamp=1567157143813&version=1.0]

這tm就很尷尬了。同一個zk集群中,每個節點的數據竟然不一致?!

看一下此環境的ZooKeeper配置:(根據運維的敘述,ZooKeeper的配置都使用docker鏡像打死的,所以ZooKeeper的配置是不會有問題的)

/zookeeper-3.4.11 # cat /conf/zoo.cfg 
clientPort=2181
dataDir=/data/zk-data
dataLogDir=/data/zk-logs
tickTime=2000
initLimit=5
syncLimit=2
maxClientCnxns=60
server.0=zk-0:2888:3888
server.1=zk-1:2888:3888
server.2=zk-2:2888:3888

還是沒有任何頭緒。。。。。

---------------------------------------------------------------------------------------------------

2019-09-03記錄:

    把ZooKeeper配置文件修改為:

clientPort=2181
dataDir=/data/zk-data
dataLogDir=/data/zk-logs
tickTime=5000
initLimit=10
syncLimit=20
maxClientCnxns=60
server.0=zk-0:2888:3888
server.1=zk-1:2888:3888
server.2=zk-2:2888:3888

修改配置之后,把事務日志和快照文件刪除,重啟ZooKeeper集群、重啟所有dubbo服務。

上述就是小編為大家分享的ZooKeeper注冊中心為什么沒有zookeeper節點了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元朗区| 四平市| 涞源县| 沙坪坝区| 兴文县| 南丰县| 吴江市| 平陆县| 宜章县| 望奎县| 惠东县| 鄯善县| 黄浦区| 苍溪县| 托里县| 鄂托克旗| 沅江市| 麻江县| 阿勒泰市| 光泽县| 临桂县| 武川县| 盐亭县| 平遥县| 安陆市| 苗栗市| 淮南市| 昭平县| 蓝田县| 白玉县| 峡江县| 临潭县| 祁东县| 南安市| 虎林市| 比如县| 大田县| 黔西县| 莆田市| 延边| 南郑县|