我们正在讨论Kafka在事件中的正确用法。
争论的焦点在于使用者不仅能够订阅(或重新订阅)主题,而且能够修改自己的读取偏移量。
我说的“消费者应该以一种永远不会修改自己的读取偏移量的方式来设计”对吗
这背后的原因:
使用者无法知道主题中实际存储了哪些事件(日志保留)
... 所以从“delta”事件中恢复一个完整的状态是不可能的。
消费者消费了一次事件,并向代理确认了这一点。为什么又要消费?
我们正在讨论Kafka在事件中的正确用法。
争论的焦点在于使用者不仅能够订阅(或重新订阅)主题,而且能够修改自己的读取偏移量。
我说的“消费者应该以一种永远不会修改自己的读取偏移量的方式来设计”对吗
这背后的原因:
使用者无法知道主题中实际存储了哪些事件(日志保留)
... 所以从“delta”事件中恢复一个完整的状态是不可能的。
消费者消费了一次事件,并向代理确认了这一点。为什么又要消费?
1条答案
按热度按时间ergxz8rk1#
如果您的使用者示例属于同一使用者组,则使用者不需要保持从主题读取的状态。阅读的状态只不过是主题的偏移,到目前为止,你的消费者已经阅读到了这个记录。如果主题有多个分区,则属于同一使用者组的使用者可以在使用者之间分配工作负载。如果其中一个使用者崩溃或失败,来自同一使用者组的其他使用者将知道他们继续使用记录的分区偏移量。