我有一个复制因子3和ansible-playbook myplaybook --start-at-task="task-name" --step
的kafka主题,生产者使用min.insync.replicas = 2
向该主题发送X消息。
在所有消息发送到主题之后的一会儿(1分钟内)之后,将使用java kafka客户端为此主题创建新使用者。使用acks=all
方法,获取该主题的所有kafka分区的结束偏移量。再次调用同一方法consumer.endOffsets()
有时会为某些分区返回不同的结束偏移量。
在此设置中,创建使用者后,没有新消息发送给kafka主题。
根据consumer.endOffsets
的Java文档:
endOffsets
endOffsets返回所有副本均确认的最后稳定偏移量(LSO)。
为什么在此方法的后续调用之间有时(不是很频繁)结束偏移量发生变化? endOffsets最终是一致的预期行为吗?一个错误?