我的Spring Kafka监听器正在接收重复的消息,我可以看到消息是从相同的分区和偏移量以及相同的时间戳轮询的。在我的代码中,我跟踪每个传入的消息并识别副本,但在这种情况下,我甚至不能拒绝处理它,因为消息-原始和副本几乎同时接收,并且第一条记录甚至没有提交到数据库跟踪表中。1.请建议我应该如何避免轮询重复的消息,我不明白为什么它被轮询两次-只在负载下。2.如果消息1元数据正在处理而未提交,我如何在跟踪表中处理此问题
the tracking table, message 2 comes and is not able to find that record in tracking table and proceeds with processing the duplicate message again.
config of the listener based on my use case:
config.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
config.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 300000);
config.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 50);
config.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");
config.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 15000);发布于 2020-10-20 02:46:44
这两个使用者需要具有相同的group.id属性,这样分区才能分布在它们之间。
如果他们属于不同的消费群体,他们都会得到所有的记录。
https://stackoverflow.com/questions/64432794
复制相似问题