问题描述
我有一个Springboot项目,它接收有关Kafka主题的消息。该应用程序本身非常简单。
- 接收消息
- 对另一个服务执行REST请求。
- 成功后确认消息。
如果由于某种原因REST请求失败,则会实施不确定的指数回退以继续尝试REST请求(消息具有到期时间,超过该时间将被丢弃,以防止消息永久重试)。
场景: 收到一条消息,该消息使REST请求失败并且处于重试循环中(偏移1)。 收到另一条成功的消息(偏移2)。第二条消息由于成功而对消息进行了确认,从而将分区偏移设置为2。
如果在这种情况下应用程序崩溃或关闭,则在重新启动时消息(偏移量1)将丢失。
我该怎么做才能确保确认是连续的?重播消息不是问题,因为跟踪数据状态的数据库支持重复数据删除逻辑。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)