【发布时间】:2022-10-13 20:21:47
【问题描述】:
是否可以同时使用多个 kafka 状态存储副本以获得更高的可用性? kafka 状态存储如何保持所有存储副本之间的一致性?
【问题讨论】:
-
一次只能使用一个领导商店
标签: apache-kafka apache-kafka-streams
是否可以同时使用多个 kafka 状态存储副本以获得更高的可用性? kafka 状态存储如何保持所有存储副本之间的一致性?
【问题讨论】:
标签: apache-kafka apache-kafka-streams
例如,您可以通过设置num.standby.replicas=2 来配置多个状态存储(这意味着两个备用副本)。
当领导者存储发生更新时,该更新也会被推送到更新日志 kafka 主题。备用存储从更改日志主题中读取以更新其存储。他们是最终一致, 意味着他们将最终赶上领先者(通常他们落后约 100-1000 毫秒)。
当领导者崩溃时,如果您的状态很大,则配置备用存储可以大大减少恢复时间。这是因为(在领导者的消费者会话超时并导致重新平衡之后)您只需要等待几秒钟,备用追随者就可以赶上领导者,以便它恢复处理;而没有备用副本,您将不得不等待新领导者回复整个状态(如果您有大状态,这可能需要几个小时)。
【讨论】: