消息队列 RocketMQ应用场景之分布式事务一致性是如何实现的?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

消息队列 RocketMQ应用场景之分布式事务一致性是如何实现的?

Lee_tianbai 2021-01-01 14:08:54 260

消息队列 RocketMQ应用场景之分布式事务一致性是如何实现的?

消息队列rocketmq 消息队列应用场景 rocketmq应用场景 rocketmq分布式 分布式消息队列
分享到
取消 提交回答
全部回答(1)
  • Lee_tianbai
    2021-01-01 14:09:53

    注册系统注册的流程中,用户入口在网页注册系统,通知系统在邮件系统,两个 系统之间的数据需要保持最终一致。 普通消息处理 如上所述,注册系统和邮件通知系统之间通过消息队列进行异步处理。注册系统 将注册信息写入注册系统之后,发送一条注册成功的消息到消息队列 RocketMQ 版, 邮件通知系统订阅消息队列 RocketMQ 版的注册消息,做相应的业务处理,发送注 册成功或者失败的邮件。 image.png 流程说明如下: 1. 注册系统发起注册。 2. 注册系统向消息队列 RocketMQ 版发送注册消息成功与否的消息。 2.1 消息发送成功,进入 3。 2.2 消息发送失败,导致邮件通知系统未收到消息队列 RocketMQ 版发送 的注册成功与否的消息,而无法发送邮件,最终邮件通知系统和注册 系统之间的状态数据不一致。 3. 邮件通知系统收到消息队列 RocketMQ 版的注册成功消息。 4. 邮件通知系统发送注册成功邮件给用户。 在这样的情况下,虽然实现了系统间的解藕,上游系统不需要关心下游系统的业 务处理结果;但是数据一致性不好处理,如何保证邮件通知系统状态与注册系统状态 的最终一致。 image.png 流程说明如下: 1. 注册系统向消息队列 RocketMQ 版发送半事务消息。 1.1 半事务消息发送成功,进入 2。 1.2 半事务消息发送失败,注册系统不进行注册,流程结束。(最终注册系 统与邮件通知系统数据一致) 2. 注册系统开始注册。 2.1 注册成功,进入 3.1。 2.2 注册失败,进行 3.2。 3. 注册系统向消息队列 RocketMQ 版发送半消息状态。 3.1 提交半事务消息,产生注册成功消息,进入 4。 3.2 回滚半事务消息,未产生注册成功消息,流程结束。(最终注册系统与 邮件通知系统数据一致) 4. 邮件通知系统接收消息队列 RocketMQ 版的注册成功消息。 5. 邮件通知系统发送注册成功邮件。(最终注册系统与邮件通知系统数据一致)

    0 0
微服务
使用钉钉扫一扫加入圈子
+ 订阅

构建可靠、高效、易扩展的技术基石

相似问题
最新问题