RabbiMQ保障可靠性投递

创建一张表,记录消息投递记录,status标记投递状态,try_count记录重试次数,初次发送status标记为:0投递中发送后,收到消息确认后,如果成功,status修改为1成功,失败修改为2失败。如果投递出问题,则会保持为0的状态。启动一个定时任务,定时查询消息投递记录表中状态为0的记录进行重复投递,重试一定次数后标记为2失败。

 

step1. 数据入库同时消息记录(msg)入库,status记录为0投递中的状态

step2.发送消息

step3.消息处理后返回请求确认 confirm

step4.更新数据库msg消息,修改状态status:成功修改为1,失败修改为2

step5.但发送消息网络中断,通过定时任务查询状态为status:0的消息

step6,重试次数未达到的重新投递

step7.重试次数大于一定次数的,将msg状态status修改为2失败

相关文章: