MQ消息丢失/重复/顺序/挤压

rabbitmq消息丢失解决

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

rocketMq解决消息丢失

在这里插入图片描述
RocketMQ事务消息概要

RocketMQ事务消息是指应用本地事务和发送消息操作可以被定义到全局事务中,要么同时成功,要么同时失败。
采用了2PC(两阶段提交)+ 补偿机制(事务状态回查)的思想来实现了提交事务消息,同时增加一个补偿逻辑来处理二阶段超时或者失败的消息,如下图所示。
在这里插入图片描述
RocketMQ 事务消息的工作流程
RocketMQ 的事务消息是指在消息发送方发送消息后,需要经过两阶段提交来确保消息的可靠性传递和处理。
undefined 发送消息:
○ 发送方将消息发送到 RocketMQ 服务端,但消息状态为“Prepared”。
undefined 执行本地事务:
○ RocketMQ 调用发送方应用程序注册的本地事务执行器(TransactionListener)来执行本地事务。
○ 本地事务执行成功后,应用程序根据事务执行结果返回 COMMIT 状态;如果执行失败,则返回 ROLLBACK 状态。
undefined 确认消息状态:
○ 根据本地事务执行结果,RocketMQ 服务端将消息状态更新为 COMMIT 或 ROLLBACK。
○ 如果发送方应用程序在规定时间内未提交事务执行结果,RocketMQ 服务端会执行回查机制。
undefined 回查机制:
○ RocketMQ 定期会检查处于“Prepared”状态的消息,向发送方应用程序发起回查请求。
○ 发送方应用程序接收到回查请求后,再次执行本地事务,并根据执行结果返回 COMMIT 或 ROLLBACK 状态。
通过以上流程,RocketMQ 的事务消息能够保证在消息发送和消费过程中的事务一致性和可靠性,确保消息在各个环节的正确处理。事务消息适用于需要确保消息生产和消费的原子性操作场景,
在这里插入图片描述
消息重复的话有业务自行保证,比如已被消费过了,订单的状态就变了

消息的顺序性

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
消息生产端和消费端都注册队列选择器
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值