事务性发件箱: 增加发件箱outbox table 表
发送mq 成功,就更新outbox 表为已消费
消息如果relay,会重发,直到确认成功为止
使用canal或者databus解析binlog
两种方案的对比
22 | 微服务数据聚合join
采用数据分发+ 预聚合的方式
数据变更,把变更的数据 做数据分发 ,使用分发服务聚合计算出商品反馈数据;然后存入到本地数据库
写数据实时同步到查询端redis, ElasticSearch
乐观更新: 前端UI直接更新,后台如果失败,再把前端UI的状态回滚
拉模式: 带上版本号,后台不停地轮询查询端,检查更新视图版本号
发布订阅: 订阅在查询query端,查询端会通知更新前端ui
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
22 | 微服务下的分布式事务
23 | 分布式事务
发消息来更新其他服务的状态,如果失败,也是通过发回滚消息,来回滚数据更改
语义锁: 订单正在处理中,拒绝用户取消订单来保证隔离性
24 | 分布式seata
25 | 微服务编排引擎 Cadence
Activity worker : 分支事务执行者
Workflow worker : 全局事务执行者