1.主动学习
事务
事务处理中的本地事务(单个服务、单个数据源)、全局事务(单个服务、多个数据源)和共享事务(多个服务、单个数据源),这一讲我们将聚焦于事务处理中最复杂的分布式事务(多个服务、多个数据源)。
CAP 理论
AP 系统目前是分布式系统设计的主流选择,大多数的 NoSQL 库和支持分布式的缓存都是 AP 系统。因为 P 是分布式网络的天然属性,你不想要也无法丢弃;而 A 通常是建设分布式的目的,如果可用性随着节点数量增加反而降低的话,很多分布式系统可能就没有存在的价值了(除非银行这些涉及到金钱交易的服务,宁可中断也不能出错)。
BASE 理论
可靠消息队列这种分布式事务的实现方式
“可靠事件队列”有一种更普通的形式,被称为“最大努力一次提交”(Best-Effort 1PC),意思就是系统会把最有可能出错的业务,以本地事务的方式完成后,通过不断重试的方式(不限于消息系统)来促使同个事务的其他关联业务完成。
备注
摘自极客时间 - 周志明老师的公开课《周志明的软件架构课》 <- 极其推荐大家阅读~>
2. 写在最后
这几次阅读对事务处理有了更深,更全面的理解。
包括要去思考事务的背景和适用场景。根据不同的形式要设计不一样的事务处理模式。
xa事务是全局事务,表示一个服务多个数据源,追求强一致性,复杂度高,吞吐量低。
可靠事件队列,代价是无法实时的一致性,即强一致性,而是实现了最终一致性,如果因为异常,而延迟了一致性的实现,可能会导致事物的隔离无法实现