6.27完成了邻里聚本地生活服务平台两个功能的优化
2026/7/3 1:55:36 网站建设 项目流程

1,redis与数据库一致性问题

原来的项目代码中,redis和数据库对数据的修改是独立的,这可能导致当数据库删除了某项数据之后,redis由于网络波动服务器等问题刚好错过了这一次的小操作,导致原本应该不存在的数据仍然保留在redis中,出现脏数据的问题。

我通过自定义retryupdateredis的方法,将redis处理增删作为函数传进去,在redis进行增删时回调这个方法,重试最多三次,确保redis和数据库的操作能够同步

2,对mq的消息确认机制进行了优化

原先项目中mq并不存在消息确认机制,因此为默认自动确认,但是这会导致在某次消息处理失败后,原有的消息直接被mq识别为确认而丢失

因此我通过设置手动确认的机制,

以@Header传入springAMQP自动识别的请求头delivertag作为idi,对当前id的消息进行手动确认,用trycatch包裹消息处理成功的逻辑,成功是try channel接口下的basicack方法,最多重试三次进行消息手动确认,消息处理失败时走catch逻辑,进行三次重试的channel.basicNack()消息拒绝方法,通过消息拒绝把这条消息送回消息队列避免消息的丢失。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询