我正在澄清 Kafka 备用副本的工作原理!
鉴于这种情况;
Kafka 流应用程序;
想法是,如果一个 pod 宕机,另一个 pod 将立即接管处理……至少我认为设置 num.standby.replicas 是这样做的。
我看到的是最初启动时,只有一个 pod 在处理流量。这是我所期望的,一个 pod 处理流量,另一个 pod 只是保持状态以防故障转移。
但是,如果我重新启动一个 pod,两个 pod 开始平等地处理流量。
是否有任何在线信息可以阐明备用副本的工作原理?..或者这是预期的行为吗?
J
您观察到的是设计使然。两个 pod 将完成 50% 的处理,备用任务被分配为“相反”。即,如果 pod A 托管活动任务 0_0,则对应的备用任务 0_0 将由 pod B 托管。
因此,每当一个 pod 发生故障时,只有 50% 的任务被“迁移”,即,如果 pod A 发生故障,pod B 的所有备用节点将被“提升”为活动的,pod B 现在将进行所有处理。