簡體   English   中英

如何使用一個Kafka經紀人從NoReplicaOnlineException中恢復?

[英]How to recover from NoReplicaOnlineException with one Kafka broker?

我們在開發實驗室中建立了一個非常簡單的Kafka 0.8.1.1 它只是一個節點。 我們會定期遇到此錯誤:

[2015-08-10 13:45:52,405] ERROR Controller 0 epoch 488 initiated state change for partition [test-data,1] from OfflinePartition to OnlinePartition failed (state.change.logger)
kafka.common.NoReplicaOnlineException: No replica for partition [test-data,1] is alive. Live brokers are: [Set()], Assigned replicas are: [List(0)]
        at kafka.controller.OfflinePartitionLeaderSelector.selectLeader(PartitionLeaderSelector.scala:61)
        at kafka.controller.PartitionStateMachine.electLeaderForPartition(PartitionStateMachine.scala:336)
        at kafka.controller.PartitionStateMachine.kafka$controller$PartitionStateMachine$$handleStateChange(PartitionStateMachine.scala:185)
        at kafka.controller.PartitionStateMachine$$anonfun$triggerOnlinePartitionStateChange$3.apply(PartitionStateMachine.scala:99)
        at kafka.controller.PartitionStateMachine$$anonfun$triggerOnlinePartitionStateChange$3.apply(PartitionStateMachine.scala:96)
        at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:743)

誰能推薦從中恢復的策略? 是否有這樣的事情,還是我們需要建立另一個或兩個節點並在主題上設置復制因子以覆蓋我們放入集群的所有節點?

我們有3個Zookeeper節點,它們對其他應用程序(例如Storm和HBase)的響應非常好,因此我們非常有信心,ZooKeeper不會在這里受到指責。 有任何想法嗎?

這個問題是關於Kafka 0.8的,如果我沒記錯的話,它應該不受支持。 但是,對於將來的讀者來說,以下准則應該是相關的:

  1. 如果您在這個總體方向上關心穩定性,正常運行時間,可靠性或其他任何方面,請確保您至少有3個kafka節點。
  2. 如果您在舊的Kafka版本中遇到問題,請認真考慮升級到最新的Kafka版本。 在撰寫本文時,我們已經在Kafka 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM