Kafka standby replica 清晰度寻求

问题描述 投票:0回答:1

我正在澄清 Kafka 备用副本的工作原理!

鉴于这种情况;

Kafka 流应用程序;

  • 从具有 10 个分区的源主题中读取
  • 写入具有 6 个分区的接收器主题。
  • rocksdb 会话状态变更日志
  • 托管在 docker 中,两个副本运行 num.standby.replicas 设置为 1

想法是,如果一个 pod 宕机,另一个 pod 将立即接管处理……至少我认为设置 num.standby.replicas 是这样做的。

我看到的是最初启动时,只有一个 pod 在处理流量。这是我所期望的,一个 pod 处理流量,另一个 pod 只是保持状态以防故障转移。

但是,如果我重新启动一个 pod,两个 pod 开始平等地处理流量。

是否有任何在线信息可以阐明备用副本的工作原理?..或者这是预期的行为吗?

J

apache-kafka apache-kafka-streams standby
1个回答
1
投票

您观察到的是设计使然。两个 pod 将完成 50% 的处理,备用任务被分配为“相反”。即,如果 pod A 托管活动任务 0_0,则对应的备用任务 0_0 将由 pod B 托管。

因此,每当一个 pod 发生故障时,只有 50% 的任务被“迁移”,即,如果 pod A 发生故障,pod B 的所有备用节点将被“提升”为活动的,pod B 现在将进行所有处理。

© www.soinside.com 2019 - 2024. All rights reserved.