2015-09-28 43 views
7

我正在運行與卡夫卡合作一年的服務,並沒有發生領導者的自發變化。 但是在過去的兩週內,這種情況經常發生。 卡夫卡登錄的是:卡夫卡什麼時候改變領導者?

  • [2015年9月27日15:35:14826] INFO [ReplicaFetcherManager上經紀人2] 對分區[myTopic]已移除提取器(kafka.server.ReplicaFetcherManager)
  • [ 2015-09-27 15:35:14,830] INFO截斷log myTopic-0抵消11520979.(kafka.log.Log)
  • [2015-09-27 15:35:14,845] WARN [Broker 2上的副本管理器]:從客戶端ReplicaFetcherThread-0-2獲取來自客戶端ReplicaFetcherThread-0-2的分區[myTopic,0]上的請求失敗,原因是代理2上的分區[myTopic,0]的Leader不是本地的(kafka.server.ReplicaManager)
  • [2015-09-27 15:35:14,857] WARN [代理2上的副本管理器]:從分區[myTopic,0]上的客戶端mirrormaker-1的相關標識256685獲取請求失敗,原因是Leader不是分區[myTopic ,0]在經紀人2(kafka.server.ReplicaManager)
  • [2015-09-27 15:35:20,171] INFO [代理2上的ReplicaFetcherManager]刪除了分區的提取器[myTopic,0](kafka.server.ReplicaFetcherManager )

什麼會引起交換領導者?如果某些kafka文檔中有信息 - 請 - 只需指出鏈接。我找不到。


系統配置

卡夫卡版本:kafka_2.10-0.8.2.1

操作系統:紅帽企業Linux服務器版本6.5(聖地亞哥)

server.properties(從默認的區別):

  • broker.id = 001
  • 個socket.send.buffer.bytes = 1048576個
  • socket.receive.buffer.bytes = 1048576個
  • socket.request.max.bytes = 104857600個
  • log.flush.interval.messages = 10000
  • 日誌.flush.interval.ms = 1000
  • log.retention.bytes = -1
  • controlled.shutdown.enable =真
  • auto.create.topics.enable =假
+0

可以請你用kafka版本,操作系統細節和kafka的server.properties更新你的答案。 – Garry

+0

@garry我添加了當前的系統配置。 – Natalia

回答

0

看起來就像領頭經紀人對該分區一樣。可能是server.properties中配置的數據directroy(log.dirs)空間不足,代理無法容納。 另外,什麼是經紀人的主題和集羣大小的複製因子?

+0

我對服務的可用空間進行監控 - 沒關係。 – Natalia

+0

主題:myTopic PartitionCount:1 ReplicationFactor:2配置:retention.bytes = 100000000000 主題:myTopic分區:0領導:2副本:2,1 Isr:1,2 – Natalia

0

我假設你有一個主題和一個複製因子爲2的分區。對於最佳Kafka性能和消費者,這不是一個好的配置。

您的日誌不夠清晰,不適合領導者切換。由於唯一的分區,您的主題中的主要問題可能是唯一的領導者。現在,日誌中的單個文件日益變大。卡夫卡內部在一定程度上進行再平衡(細節未確認)。這可能是您的領導者切換的原因。但我不確定。

同樣在你的第二條日誌行中,它表示一些日誌被截斷。你可以請儘管詳細的日誌,並檢查是否發生截斷後才發生?

正如您已經提到的,您已經檢查過您的Kafka日誌目錄文件及其大小。當你遇到這個問題時,請運行描述。領導者開關也會在這裏反映出來。或者,如果您可以設置一些儀表板來顯示過去時間的領導者。那麼你很容易找到根本原因。

bin/kafka-topics.sh --describe --zookeeper Zookeeperhost:Port --topic TopicName 

建議:我會建議你創建多個分區(讀卡夫卡文檔,以獲取有關分區的最佳數量是個好主意),並開始寫一個新的話題。或者您可以檢查,如何更改當前主題的分區。

最後一件事:領導者開關是否會在您的客戶中引發一些問題,或者您只擔心警告?