RabbitMQ系列之消息可靠性保障、消息幂等性保障

RabbitMQ应用问题

消息可靠性保障

  • 消息补偿机制,100%确保消息发送成功

在这里插入图片描述

图解:

  • Producer处理业务并操作数据库,然后向Q1发送消息
  • Consumer监听Q1中的消息,做对应的业务处理,并操作数据库,如果处理成功,向Q2发送消息
  • 回调检查服务监听Q2确认消息,将消费成功的记录写入MDB中(消费记录表)
  • 回调检查服务监听Q3延迟队列,收到消息后去MDB确认该消息是否成功消费,如果未成功消费,则调用Producer服务重新发送消息(流程从头再来),如果已成功消费则不作操作
  • 定时检查服务,每隔时间段检查相关数据库中数据是否一致,如不一致(Q1、Q3都没收到消息时),则表明消费未成功消费,则调用Producer服务重新发送消息

消息幂等性保障

幂等指一次或多次请求同一资源,应该得到同样的结果,换言之就是多次执行对资源本身的影响与一次的影响相同

在MQ中指,消费多条同样的消息与消费该消息一次的到的结果相同

乐观锁机制

例如操作数据库是可以添加version=1,消费者在消费时要判断version是否为1,如果不是则证明为重复消费,则不作处理

具体实现不做赘述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值