RocketMQ 批量消息事务消息
批量消息
为什么使用批量消息?
在很多调优的时候,比如数据库批量处理,有些请求进行合并发送等都是类似批量的实现
RocketMQ 批量发送也是为了追求性能,特别在消息数量特别大的时候,批量效果就非常明显
使用批量消息的限制?
同一批次的消息应该具有相同主题、相同的消息配置
不支持延迟消息
建议一个批量消息大小最好不要超过1MB
官方教程:http://rocketmq.apache.org/docs/batch-example/
事务消息
什么是事务消息?
RocketMQ 的事务消息,是指Producer端消息发送事件和本地事务事件,同时成功或同时失败 。
RocketMQ 事务消息设计
事务消息的使用约束
事务消息不支持定时和批量
为了避免一个消息被多次检查,导致半数队列消息堆积
RocketMQ限制了单个消息的默认检查次数为15次
通过修改broker配置文件中的transactionCheckMax参数进行调整
特定的时间段之后才检查事务,通过broker配置文件参数transactionTimeout或用户配置CHECK_IMMUNITY_TIME_IN_SECONDS调整时间
一个事务消息可能被检查或消费多次
提交过的消息重新放到用户目标主题可能会失败
事务消息的生产者ID不能与其他类型消息的生产者ID共享
事务消息的状态
三种事务消息状态
TransactionStatus.CommitTransaction
提交事务,允许消费者消费这个消息
TransactionStatus.RollbackTracsation
回滚事务,消息将会被删除或不再允许消费
TransactionStatus.Unknow
中间状态,MQ需要重新检查来确定状态
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!