Rabbit 基础消息组件封装 概要

本文详述RabbitMQ消息组件的七大封装模块:迅速、确认、批量、延迟、顺序、事务消息发送及消息幂等性保障。涵盖从高性能到高可靠性的不同场景应用,如日志收集、支付确认、优惠券过期处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Rabbit 基础消息组件封装 概要

1.迅速消息发送
2.确认消息发送
3.批量消息发送
4.延迟消息发送
5.顺序消息发送
6.事务消息发送
7.消息幂等性保障

迅速消息发送
1)迅速消息指消息不进行落库存储,不做可靠性的保障
2)在一些非核心消息,日志数据,或者统计分析等场景下比较合适
3)迅速消息的优点就是性能最高,吞吐量最大

确认消息发送
在这里插入图片描述
批量消息发送
多条消息合并放在集合里(map,list),做一次发送
在这里插入图片描述
延迟消息发送
Message 封装的时候添加delayTime 属性,使我们消息可以延迟发送
场景:7天后电商自动确认支付,优惠卷自动到期作废

顺序消息发送
1)发送顺序消息,必须保证投递到一个队列,且这个消费者只能有一个(独占模式)
2) 统一提交(可能合并成一个大消息,也可能查分成多个小消息)且有所消息的会话ID一致
3)添加消息属性:顺序标记的序号,和本溪顺序消息的SIZE属性,进行落库
4)并行进行发送给自己的延迟消息(带上关键属性:会话ID,SIZE) 进行后续处理消费
在这里插入图片描述

事务消息发送
1)采用类似可靠性投递的机制,补偿机制
2)我们的数据源必须是同一个,也就是操作DB1数据库和消息记录DB2数据库使用同一个数据源
3)然后利用重写Spring DataSourceTransactionManager,在本地事务提交的时候进行发送消息,但是
也有可能事务提交成功但是消息发送失败,这个时候就需要进行补偿了。
在这里插入图片描述
消息幂等性保障
导致非幂等性原因:
1)可靠性信息投递机制问题,MQ接收到消息没返回发送端 ACk
2)MQ Broker 服务于消费端传输消息的过程中网络波动,导致ACK失败,重新发送给消费端
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值