分布式事务理论

1)先了解本地事务,也称之为关系形数据库事务(基于关系型数据库的事务)

数据库事务特性ACID,

A:原子性(多个操作要么成功,要么失败)

C:一致性(操作数据后的一致性),

I:隔离性 (多用户操作某一行数据,不能多用户操作数据,数据被干扰。不然就会出现脏读,重复读),

D:持久性 (通常在我们操作完数据库后,数据会被持久化到数据库,且不会被回滚)

2)分布式事务的定义:分布式系统环境下,由不同服务之间通过网络远程协作,完成事务称之为分布式事务。

通过本地事务的思想是不能达到分布式事务的,例如:A转账给B100元,此时B成功增加100,但网络暂时未返回给A,B成功增加100,A就会错误的认为B未执行成功,从而回滚。

分布式事务场景简言之:跨JVM进程产生分布式事务(多个服务一个数据库),跨数据库实例也会产生分布式事务。

3)CPA理论

C: 一致性:写操作后 的 读操作, 可以读取到最新的数据状态。当数据分部在多个节点上,从任意节点读取到的数据都是最新状态。

读写分离,当写如数据后,如何保证可以查询到刚写入的数据?可以在写入后,同步到 读库,此时读库会被锁定暂停服务,必须等待同步完成解锁后才可查。

所以分布式系统一致性的特点: a.由于数据在同步的过程,写操作的响应会有一定延迟。 b. 为了保证数据一致性会对资源暂时锁定,待数据同步完成释放锁定资源。

A:可用性,

P:分区容忍性

你可能感兴趣的:(Linux,分布式,数据库,java)