软考论文记忆助手
押题正文
主题列表
常见问题
新建主题
同步论文
随机抽背
质量检查
导入语料
导出JSON
编辑论文点
所属主题:
论分布式事务及其解决方案
技术点/功能点名称
排序号
在论文中的作用
正文展开点
解决的问题
该平台在用户下单时需要同时完成订单生成、库存占用和后续通知等工作,如果把这些操作全部放在一个同步事务中,系统会长时间等待库存处理和外部接口结果,活动高峰期吞吐量明显下降;如果完全不做一致性控制,又可能出现订单已经生成但库存没有占用的情况
为什么选择它
在订单创建和库存处理环节,我们采用事务消息来满足跨服务处理最终一致的要求
解决的方法
为解决这一问题,我组织项目组将订单创建作为本地事务的核心边界,在 MySQL 中保存订单及其初始状态,同时通过 RocketMQ 发送订单创建消息,通知库存和消息等模块继续处理
效果
通过事务消息,系统在不长时间阻塞用户请求的前提下,使订单和库存处理达到最终一致
不使用的劣势/风险
项目位置/技术/需求
在订单创建和库存处理环节,我们采用事务消息来满足跨服务处理最终一致的要求
具体的实现
具体运行时,用户提交订单后,订单模块先保证订单记录可靠落库,再发布后续处理消息;库存模块收到消息后完成库存占用,并记录处理结果
例子
以活动商品下单为例,即使库存处理短时间排队,订单记录和后续处理消息也能够保持对应关系
记忆提示/背诵口诀
在订单创建和库存处理环节,我们采用事务消息来满足跨服务处理最终一致的要求 / 事务消息
备注
保存修改
返回详情