标题:
RocketMQ原理解析-Producer(2)
[打印本页]
作者:
look_w
时间:
2018-12-18 20:23
标题:
RocketMQ原理解析-Producer(2)
producer 3.如何发送顺序消息[url=]
[/url]
Rocketmq能够保证消息严格顺序,但是Rocketmq需要producer保证顺序消息按顺序发送到同一个queue中,比如购买流程(1)下单(2)支付(3)支付成功,
这三个消息需要根据特定规则将这个三个消息按顺序发送到一个queue如何实现把顺序消息发送到同一个queue: 一般消息是通过轮询所有队列发送的,顺序消息可以根据业务比如说订单号orderId相同的消息发送到同一个队列, 或者同一用户userId发送到同一队列等等messageQueueList [orderId%messageQueueList.size()]messageQueueList [userId%messageQueueList.size()]
[url=]
[/url]
producer 4.如何发布分布式事务消息先引入官方文档图:
分布式事物是基于二阶段提交的
[url=]
[/url]
1) 一阶段,向broker发送一条prepared的消息,返回消息的offset即消息地址commitLog中消息偏移量。Prepared状态消息不被消费发送消息ok,执行本地事物分支, 本地事物方法需要实现rocketmq的回调接口
2) LocalTransactionExecuter,
处理本地事物逻辑返回处理的事物状态LocalTransactionState3) 二阶段,处理完本地事物中业务得到事物状态, 根据offset查找到commitLog中的prepared消息,设置消息状态commitType或者rollbackType,
让后将信息添加到commitLog中, 其实二阶段生成了两条消息
[url=]
[/url]
事物消息发送
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0