分布式数据库的一些自我理解
首先分布式数据库的出现有许多情况,底层原因是数据库的多条连接,这个多条连接的出现可以有至少以下几种情况,1.一个业务的实现需要多个数据库的数据也就是跨数据库访问2.虽然只有一个数据库但是一个业务需要连个服务器去连接这个数据库3.一个服务器实现业务需要访问两个数据库,可以和第一种总结为跨数据库访问。
接下来说说分布式数据库的ACP原理,简单来说,由于P也就是网络这一客观因素,分布式数据库无法保证数据的强一致性和可用性的共存。
我们来说一下阿里巴巴的seata的通过AT方法实现的AP。
首先由TM来大喊一声开启全局事务,于是TC就开启了全局事务,然后TM再跟每个分支的RM说你们可以去向TC注册了,然后RM向TC注册后就可以开始执行自己的业务在这业务中他们可以自己提交自己回滚,并且数据库的数据会随着他们的行为改变,但是每个改变都会记录在一个unlog表中记录日志,并且RM会记录数据库更新前后快照,这是我们对AP的重要保证,因为我们虽然是AP但我吗要求数据的最终一致性。RM执行完后他们会向TC报告自己的事务状态,然后在TM的一声大喊全局事务开始执行提交或回滚后TC开始检测每个分支的事务状态,如果提交TC让RM删除unlog,回滚则根据unlong中数据执行反向操作。