我正致力于在Kafka重新平衡中保存消费者身份。我发现javadoc ConsumerRebalanceListener中的伪代码使用外部存储来保存偏移量。
我想知道:当使用外部存储而不是Kafka(Zookeeper或_consumer_offset
)来管理偏移时,系统安全性或稳健性(不关心业务逻辑要求)是否有任何好处,例如:更好地处理网络问题?谢谢。
用于在Kafka之外存储偏移的主要用例是消费应用程序需要将偏移和消费/处理的消息存储在一起。这允许通过将两个值(偏移量和消息)组合在一起来对系统进行单次写入(希望是原子的)。
否则,应用程序有效地需要进行2次“写入”以将消息存储在外部系统中,然后将偏移存储到Kafka中。
这在Storing Offsets Outside Kafka的KafkaConsumer javadoc部分有更详细的解释