【发布时间】:2018-06-15 11:22:23
【问题描述】:
我有一个 3-broker Docker Kafka AWS 集群和一个 3-container KafkaStreams 应用程序处理来自具有复制 = 2 的“事件”主题。
我在this question 中遇到了其他用户写的失败,后来让我创建了this question。停止 KafkaStreams 应用程序后,我重新启动了失败的代理,一个在星期五(大约需要一个小时),另一个在下星期一重新启动。
当代理加入集群时显然没问题(显示“失败,我重新启动了应用程序。
__customer_offsets.sh 复制=3,所以它们应该是安全的。
(作为参考,集群情况在this question 中有更好的描述)。
我的应用程序进行了一些调度,因此输出主题偏移的总和应该等于原始事件的总和)。无论什么不存在,它都会以一种包罗万象的方式转到errors 主题,因此它们总是匹配的。
但是,当重新启动时,应用程序从头开始处理,处理的消息数量几乎翻了一番(当失败发生时,有一些未处理的延迟)。
如果__consumer_offsets 没有丢失(而且它们显然没有丢失——它们只是显示复制不足,但在整个过程中都存在于代理中),为什么应用程序会从零开始处理?在什么情况下会出现这种情况——或者可能会发生这种情况?
【问题讨论】:
标签: apache-kafka apache-kafka-streams