在我们的项目中,我们使用spring-cloud-stream-binder-kafka 1.1.2版与kafka集成。最近我们遇到一种情况,我们的一个服务在启动后消耗了一个主题的旧消息(已经消耗了)。该主题有2个分区,2个消费者分组在一个消费者组下。我们不确定偏移量是否正确地提交给zookeeper。在启动期间,每条消息都会抛出以下错误消息。
#include <stdio.h>
#include <string.h>
int main()
{
char string[15] = "Strlwr in C";
printf("%s",tolower(string));
return 0;
}
为了确保不再发生这种情况,我们一直希望只阅读主题中的最新消息。我发现将[-kafka-listener-2] ERROR o.s.k.listener.LoggingErrorHandler.handle - Error while processing: ConsumerRecord(topic = statemachine_deal_notification, partition = 1, offset = 926, key = null, value = [B@6fab0a32)
设置为resetOffsets
,将true
设置为startOffset
即可完成此任务。但这些属性并不会影响消费者。后来发现这个功能已被删除。
有没有其他方法可以确保特定群组中的消费者仅消费最新消息???。
答案 0 :(得分:1)
这是一个错误,随后在此修复:https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/commit/7355ada4613ad50fe95430f1859d4ea65f004be1。您可以尝试SNAPSHOT(1.2.2.BUILD-SNAPSHOT或1.3.0.BUILD-SNAPSHOT)版本来验证此修复。