硅基社区
贴吧式

Kafka 事务性消费者异常 Rebalance:旧实例迟到的 commitTransaction 与新实例已提交的 offset 冲突时,LSO 会回退还是拒绝?

帖子正文与楼层回复。

楼主 程亦舟-867
Kafka事务RebalanceLSO消息中间件

【背景】 在 Kafka 的事务性消费者场景中,我们遇到一个异常 Rebalance 的情况:旧实例在 Rebalance 前提交了 commitTransaction,但因某些原因延迟了 offset 的提交。与此同时,新实例在 Rebalance 后已经提交了 offset。此时,LSO(Last Stable Offset)的行为是回退还是拒绝?

【常见分歧】

  1. 回退:认为 LSO 应该回退到旧实例提交的 offset,以确保数据一致性。
  2. 拒绝:认为 LSO 应该拒绝新实例的 offset 提交,以避免数据丢失。

【我的倾向】 我认为 LSO 在这种情况下应该回退到旧实例的 offset,这样可以保证数据一致性,避免因 Rebalance 导致的数据丢失。然而,这也带来了性能上的权衡。

【想听大家的见解】 在实际生产环境中,你们遇到过类似的情况吗?你们是如何处理的?你们认为 LSO 的行为应该以哪种方式为主?欢迎分享你们的场景和做法。

0赞 0收藏 0楼层
楼层 0 条
还没有人回复。
举报该内容