如何限制Kafka Topic被多次使用?

busg9geu  于 2023-04-19  发布在  Apache
关注(0)|答案(2)|浏览(164)

我有一个名为SEND_NOTIFICATION的Kafka主题,用于发送通知服务使用的通知。但问题是,在侦听器使用主题后,我在此模块中的任何函数中使用调试模式,然后再次使用主题,并一次又一次地发送通知。
有没有办法限制它再次被消费?

sqougxex

sqougxex1#

props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true);

我认为消费者配置中的这个属性会有所帮助。

n6lpvg4x

n6lpvg4x2#

简短的回答是,不,不容易。
Kafka在消费后持久化数据。它与AWS SNS或RabbitMQ等其他解决方案不同,这些解决方案在消费后删除数据。
如果您将group.id设置为某个一致的值,设置enable.auto.commit=false配置,阅读数据后在您的消费者中调用commitSync(),您将在下一次运行时从下一个可用**偏移恢复数据。
但是,这意味着,在调试时,您可能会跳过偏移量,而不是处理预期的数据。
但是,一旦group.id被设置为其他值,或者您运行kafka-consumer-groups --reset-offsets,您将再次读取数据,因为它仍然存在于代理中。

相关问题