【问题标题】:Kafka - Controller BrokerKafka - 控制器代理
【发布时间】:2020-11-10 17:29:01
【问题描述】:

我从https://niqdev.github.io/devops/kafka/ 看到这句话 和https://livebook.manning.com/book/kafka-streams-in-action/chapter-2/109(Kafka Streams in Action)

控制器代理负责为主题的所有分区设置领导者/追随者关系。如果 Kafka 节点死亡或无响应(对 ZooKeeper 心跳),则其所有分配的分区(领导者和跟随者)都由控制器代理重新分配。

我认为将追随者分区分配给其他经纪人是不正确的 - 因为除非经纪人回来,否则分区不会自行修复。我知道这只发生在领导者副本上,如果领导者副本的代理出现故障,则包含追随者的代理之一将成为领导者。但是,我不认为追随者的“重新分配”会自动发生,除非手动启动重新分配。请添加您的输入

【问题讨论】:

标签: apache-kafka confluent-platform


【解决方案1】:

该术语确实可能有点偏离,但仍然适用。追随者不一定分配给其他代理,但他们需要将端点更改为他们将发送获取请求的位置。 The follower's job is to stay in-sync with the leader, and if the leader has been assigned to a new broker because the old one failed then the followers need to send their fetch requests to the new elected broker.我认为这就是在您分享的上下文中重新分配的含义。

【讨论】:

  • 请看这句话“它的所有分配的分区(领导者和跟随者)都由控制器代理重新分配。” - 这句话专门说追随者被重新分配给其他经纪人。我想这是不正确的。但是,领导者将被重新分配,因为 ISR 将被选为领导者。请确认
  • “领导者将被重新分配为 ISR 的追随者”——是的,这基本上就是我在提供的答案中所写的内容。
  • 我明白了。但是,“追随者”也是如此吗?我的意思是,如果其中一个经纪人下线了,那个经纪人上的“追随者”会被重新分配给其他经纪人吗?我问这个问题的原因是,我没有看到这种行为发生
  • 不,追随者不会被移动,因为这将是一项昂贵的操作。将他们留在原地并让他们知道选择了新领导者是更聪明的做法,这样他们就可以继续与新数据流保持同步。我希望澄清。
  • 是的,我也有同样的印象。这就是我要求澄清的原因,因为该声明与此相矛盾。请参阅引号中的短语“追随者”,它给人的印象好像追随者将被移动(重新分配),但事实并非如此。 - 如果 Kafka 节点死亡或无响应(对 ZooKeeper 心跳),控制器代理将重新分配其所有分配的分区(领导者和“跟随者”)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 2018-06-16
  • 2023-04-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多