分布式事务

本文探讨了分布式系统中的事务特性(ACID)及其在一致性(Consistency)、隔离性(Isolation)和持久性(Durability)上的应用,以及CAP定理中一致性与可用性的冲突,并介绍了BASE理论和实操中的分布式事务开启与C#代码实例。

1、事务特性(ACID)

Atomicity(原子性):一次操作,操作中包含的事务必须都成功或者都失败

Consistency(一致性):操作的对象(服务器),其数据发生一致性变化,即此消彼长

Isolation(隔离性):多事务之间互相隔离,不暴露通信状态

Durability(持久性):事务引起的数据变化,持久化到硬盘上,不受不可抗意外干扰(如断电……)

2、 分布式入门理论——CAP定理

Consistency(一致性):逻辑合法,数据发生一致性变化,则操作相关数据库,则必须同时被锁,方能保证操作过程中,数据一致。

Availability(可用性):服务器对象,随时可用,不能被锁 ,即使数据正在被操作。与C矛盾。

Partition tolerance(分区容错):分布式系统在长期运行的情况下,必然出错,是不可靠的。

 

 在分布式系统下,网络出错是必然存在的,即是不可靠的。在分区容错一定出现的情况,C和A是不能同时满足的。故,CAP是不能同时满足的!

3、BASE理论之CPA的取舍

CA:在A的前提下,保证C;CP:在P的前提下保证C;AP:在P的前提下保证A。

在分布式系统中,可用性最重要,最常采用的是CP模式。

4、实操

windows系统下,打开命令行运行:【net start msdtc】开启分布式事务

 

 C#项目中引用,命名空间【system.transactions】,代码实现:

//如果不开启windows的分布式服务,则会报错!!!
using(TransactionScope transactionScope=new TransactionScope())
{
   //TODO:数据库操作
   transactionScope.Complete();//提交事务
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值