kafka集群的錯誤處理--kafka一個節點掛了,導致消費失敗
阿新 • • 發佈:2019-04-17
https Kafka集群 dmi ati 配置線 replica 其他 pic local
作者:Stalary
鏈接:https://www.jianshu.com/p/afa462ffc1ae
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。
今天由於kafka集群搭建時的配置不當,由於一臺主消費者掛掉(服務器崩了,需要維修),導致了所有新版消費者(新版的offset存儲在kafka)都無法拉取消息。
由於是線上問題,所以是絕對不能影響用戶的,使用老版客戶端(offset存儲在zk)進行消費,然後將kafka遷移到備用服務。
下面來說一下這次事故的具體處理思路
- 首先要確保獲取到的消息不能丟失,所以老版消費者進行消費
- 線上服務通過均衡負載一臺一臺的進行切換kafka服務,當原生產者數據都消費完時,將消費者切換到備用服務
- 開始配置線上kafka服務
主要做了如下修改
offsets.topic.replication.factor=3
設置副本數量為3,這樣當一臺消費者宕機時,其他消費者也可以進行消費
為了使topic可以進行復制副本,這裏采用了比較粗暴的方法,直接清空topic和offset
分為以下幾個步驟
./zookeeper-shell.sh 127.0.0.1:24500
rmr /brokers/topics/topic-name
rmr /config/topics/topic-name
rmr /admin/delete_topics/topic-name
此時已經將topic完全刪除,然後進行topic的新建
bin/kafka-topics --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic topic-name
這時可以啟動生產者和消費者進行查看,已經不再出現一開始的異常
Connection to node -1 could not be established. Broker may not be available.
這時我進行了測試,對三臺broker中的任意一臺進行下線,服務會自動選擇其他節點進行生產和消費。
作者:Stalary
鏈接:https://www.jianshu.com/p/afa462ffc1ae
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。
kafka集群的錯誤處理--kafka一個節點掛了,導致消費失敗