1. 程式人生 > 其它 >啟動服務提示連線zookeeper失敗

啟動服務提示連線zookeeper失敗

技術標籤:zookeeperjava

	今天日常更新內網(LINUX伺服器)專案,準備進行測試。出現一個意料之外的錯誤,提示說專案連線zookeeper失敗。一直在嘗試進行重連。

	最後問題解決了,在此分享下處理問題的過程和經驗。


	前面各種重試的逗比操作就不跟你們聊了。。。。。

	正文來了。
	總結下網上的說法,專案連線zookeeper失敗的幾種可能,
	1.zookeeper服務掛了,一般情況下不會,而且這種情況也挺容易發現的。建議出現連線失敗後第一反應是想檢視zookeeper服務。
	
	2.連線數過多。(我就是這種情況)

	先說怎麼檢視連線數。
	netstat -na | grep 2181 | wc -l
	執行上述命令後可以看到當前伺服器連線2181的連結數(如果zookeeper埠不是2181的請自行修改命令)

	netstat -na | grep 2181
	這個命令是檢視具體連線的詳細情況

在這裡插入圖片描述

	一般zookeeper預設的單個IP伺服器的連線數是60,這就可以確認是不是連線數過多導致的問題。


	連線數過多的問題有兩種解決方案。
	1.修改zookeeper的zoo.conf配置檔案中的maxClientCnxns配置。沒有的可以加上,附上這個配置的詳解
	maxClientCnxns:預設為60,不支援以系統屬性方式配置。從Socket層面限制單個客戶端與單臺伺服器之間的併發連線數,即以ip地址來進行連線數的限制。如果設定為0,表示不做任何限制。僅僅是單臺客戶端與單個Zookeeper伺服器連線數的限制,不能控制所有客戶端的連線數總和。

	2.用netstat -na | grep 2181命令查詢當前連線的程式,無用的全部的kill掉。如果都是要用的,就去修改zookeeper的配置來實現

給後人少走彎路的經驗,有興趣的可以留言討論下。不喜勿噴!