JAVA全系列 教程
3762个小节阅读:7091.5k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
本地消息表模式的核心通过本地事务保证数据业务操作和消息的一致性,然后通过定时任务发送给消费方或者中间加一层MQ的方式,保障数据最终一致性。
订单微服务中出库本地消息表:
流程:
- 1:用户下单,订单微服务创建订单,插入订单表
- 2:同时插入本地消息表(订单的出库单本地消息表),并根据订单号设置消息表为待确认状态
- 3:同步/异步调用库存微服务接口,扣减商品库存,并插入出库单。如果为了提高性能和用户体验,这里可以使用异步方案,使用线程或者MQ。
- 4:同步/异步调用订单微服务接口,更新消息表为确认状态、更新订单状态为待出货状态
Task微服务的任务
定时任务的作用:
- 1:首先task微服务开启一个定时任务,定时去轮训订单微服务中的本地消息表中未确认的消息数据;
- 2:然后调用库存微服务中的接口,根据订单编号(本地消息表和出库单表都有订单编号),判断本地消息表中的订单是否存在于出库单中;
- 3:如果本地消息表中的订单在出库单中不存在,则调用库存微服务中的接口,更新商品库存,并插入出库单,在同一事务中操作;
- 4:然后根据订单号更新本地消息表中的状态为已确认;如果更新消息失败,继续执行第一步操作;
- 5:如果本地消息表中的订单在出库单中存在,则将消息状态更新为已确认;
- 6:更新订单状态为待发货。
实时效果反馈
1.本地消息表实现可靠消息最终一致性分布式事务中Task定时任务的主要作用__。
A 保证数据可靠性
B 保证数据最终一致性
C 保证数据可用性
D 以上都错误
答案
1=>B