偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一次Zookeeper bug排查之旅 論程序員曾遇到關于性能的那些事

開發(fā) 前端
某一天突然有同事說zk client連不上server,考慮到最近業(yè)務代碼沒有變更,懷疑是運維同學做了什么操作導致,急忙聯(lián)系運維同學,確實最近做了變更。為了避免擴大影響范圍,先讓運維同學回滾了變更,回滾后可以正常訪問了。

[[389119]]

起因

某一天突然有同事說zk client連不上server,考慮到最近業(yè)務代碼沒有變更,懷疑是運維同學做了什么操作導致,急忙聯(lián)系運維同學,確實最近做了變更。為了避免擴大影響范圍,先讓運維同學回滾了變更,回滾后可以正常訪問了。

復現(xiàn)問題

詢問運維同學后,得到變更流程:由于zk集群有一臺服務器存在性能隱患,需要變更到新的一個實例。于是運維先將新機器加入zk集群,修改舊服務器上配置逐個重啟,重啟后新zk的角色是leader,此時zk狀態(tài)正常,運維同學也就認為變更完成。

結果意想不到的是使用mntr命令查看,所有的機器狀態(tài)都是正常,但是zk client無法訪問,一訪問就卡住,問題可以在測試環(huán)境穩(wěn)定復現(xiàn)。

問題排查

1 猜測zk端口沒有監(jiān)聽成功,登錄服務器使用netstat查看server打開的三個端口都是正常狀態(tài),也使用了telnet測試可以連上。

2 猜測同步節(jié)點數(shù)不足一半,或者follower連不上leader觸發(fā)重新選舉,但很快就被排除,因為上面說了使用mntr命令查看節(jié)點狀態(tài)都正常,從日志中也未能找到對應日志記錄。

3 我們再使用stat來觀察server的連接情況,運行zk client發(fā)現(xiàn)server收到了client的請求,但是沒有回消息,看來原因就是zk server沒處理client的請求了。

跟蹤到這里,就應該進入源碼了,由于對zk源碼不熟悉,咨詢了某位大佬,建議我們看zk請求處理類CommitProcessor。

在CommitProcessor我們發(fā)現(xiàn)了原因,代碼如下:

  1. <code>@Override 
  2. public void start() { 
  3.     ... 
  4.     if (workerPool == null) { 
  5.         workerPool = new WorkerService("CommitProcWork", numWorkerThreads, true); 
  6.     } 
  7.     ... 
  8.  
  9. public void shutdown() { 
  10.     LOG.info("Shutting down"); 
  11.  
  12.     halt(); 
  13.  
  14.     if (workerPool != null) { 
  15.         workerPool.join(workerShutdownTimeoutMS); 
  16.     } 
  17.  
  18.     if (nextProcessor != null) { 
  19.         nextProcessor.shutdown(); 
  20.     } 
  21. </code><button>復制</button> 

在shutdown中調用了 workerPool.join實際上已經將請求處理的開關關閉了,但是并沒有將workerPool設置為null。在start方法中會根據(jù)workerPool==null來創(chuàng)建WorkerService并開始處理請求。

修改后重新驗證解決。

 

責任編輯:張燕妮 來源: PerfMa應用性能技術社區(qū)
相關推薦

2015-08-19 09:10:37

程序員面試

2019-05-29 08:04:44

Zookeeper遷移擴展

2025-03-17 10:01:07

2016-02-26 15:25:45

程序員Bug反應

2015-04-09 13:52:47

程序員在家辦公

2020-11-02 09:48:35

C++泄漏代碼

2011-03-22 10:49:53

2013-07-17 18:00:02

程序員禁忌程序員錯誤程序員bug

2019-09-12 17:09:52

程序員跳槽那些事兒編程語言

2018-01-30 09:19:46

程序員技能Bug

2024-03-18 00:00:05

Java服務JVM

2023-01-20 11:51:40

性能測試系統(tǒng)

2020-02-28 15:49:26

2012-10-19 09:27:23

Ruby

2017-01-23 12:40:45

設計演講報表數(shù)據(jù)

2013-04-15 10:55:09

程序員

2015-11-04 11:38:40

bug程序員

2019-09-15 19:17:02

性能測試

2012-05-01 08:06:49

手機

2010-11-22 13:28:55

點贊
收藏

51CTO技術棧公眾號