当前位置: 首页 > article >正文

如何保证RocketMQ顺序消息以及可能出现的问题

文章目录

  • 生产端提供了一个接口 MessageQueueSelector
  • 如果扩容了怎么保证顺序消费?
  • 顺序消息,如果某条失败了怎么办?会不会一直阻塞?

一个用户在电商网站上下订单到交易完成,中间会经历一系列动作,订单的状态也会随之变化,一个订单会产生多条MQ消息,下单、付款、发货、买家确认收货,消费端需要严格按照业务状态机的顺序处理,否则,就会出现业务问题。

我们发现,消息带上了状态,不再是一个个独立的个体,有了上下文依赖关系!

对于这个问题,突然想到HTTP协议,其本身也是无状态的,也就是说前后两次请求没有关联,但有些业务功能有登录要求,那怎么解决?

引入Cookie机制,每次请求客户端额外传输一些数据,来达到上下文关联。

回到MQ的消息顺序问题,我们要如何解决?

答案:各退一步,保证局部有序。

比如上面的电商例子,只要保证一个订单的多条状态消息在同一个分区,便可以满足业务需求,这个方案可以覆盖大部分的业务场景

这里面只需要有一个路由策略组件,由它决定消息该放到哪个分区中!

以 RocketMQ 为例


http://www.kler.cn/a/6058.html

相关文章:

  • Databend 开源周报第 86 期
  • 【CSS】清除浮动 ① ( 清除浮动简介 | 清除浮动语法 | 清除浮动 - 额外标签法 )
  • 计算机组成原理:5. 输入输出系统
  • Higress 0.7.0 版本发布:GA 进入倒计时
  • 学会吊打面试官之list
  • 通过两道一年级数学题反思自己
  • LeetCode222. 完全二叉树的节点个数(二分查找+二进制表示路径法)
  • 免 交 互
  • 2023年6月18日的CDGA/CDGP数据治理认证考试报名开始啦!
  • 主机系统扫描程序设计
  • 阿里6年,一个32岁女软件测试工程师的心声
  • Unity Render Streaming 云渲染
  • Spring Security 6.0系列【6】源码篇之表单登录认证流程
  • 信息系统项目管理师第四版知识摘编:第12章 项目质量管理​
  • 前端项目-05-轮播图banner和Floor组件开发-全局轮播图组件抽取
  • 【新2023Q2模拟题JAVA】华为OD机试 - 拼接 URL
  • matlab笔记总结(1)
  • (LDR6020)国产第一颗PD MCU 可以用于1to2快充线 无线充底座 手机散热背夹方案
  • 【蓝桥杯】【嵌入式组别】第十三节:PWM输入捕获编程
  • 2023-2029年中国环烷基润滑油行业竞争状况及投资前景趋势报告