我有一个根据订阅主题进行的消费者投票。它消耗每条消息并进行一些处理(在几秒钟内),推送到不同的主题并提交偏移。
总共有5000条消息,
重启前-消耗了2900条消息和已提交的偏移量
重启后-从偏移量0开始消耗。
即使使用相同的使用者组创建了使用者,它仍开始处理偏移量为0的消息。
kafka版本(strimzi)> 2.0.0 kafka-python == 2.0.1
答案 0 :(得分:0)
我们不知道您的主题中有多少个分区,但是当在同一个使用者组中创建使用者时,他们将使用来自不同分区的记录(我们不能在其中有两个使用者)消费来自同一分区的消费者组,如果您添加消费者,则组协调器将执行重新平衡的过程,以将每个消费者重新分配到特定分区。
我认为偏移量0来自属性auto.offset.reset
,可以是:
latest
:从日志中的最新偏移量开始earliest
:从最早的记录开始。 none
:在没有现有偏移数据时引发异常。但是只有当您的消费者组没有提交有效的偏移量时,此属性才会启动。
注意事项:主题中的记录具有保留期 log.retention.ms
属性,因此当您处理日志中的第一条记录时,可以删除最新消息。
问题:当您想使用一个主题中的消息并处理数据并将其写入另一个主题时,为什么不使用Kafka Streaming?