我们有几个使用 Spring Boot 和 Spring Cloud Stream Kafka binder 的微服务在它们之间进行通信。
有时,我们会观察到消费者收到的重复消息的爆发——通常是在首次消费和处理(成功)之后的几天。
虽然我知道 Kafka 不保证只交付一次,但它看起来仍然很奇怪,因为在经纪人和服务的日志中没有重新平衡事件或任何“可疑”活动。由于消费者正在与外部 API 进行交互,因此使其具有幂等性有点困难。
任何提示可能是重复的原因?我应该寻找什么来解决这个问题?
我们使用的是 Kafka 代理 1.0.0,而这个特定的消费者使用 Spring Cloud Stream Binder Kafka 2.0.0,它基于 kafka-client 1.0.2(其他服务的版本可能有点不同)。