
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式事务是我们在学习数据库编程开发的时候需要重点掌握的一个编程开发知识点,而本文我们就通过案例分析来简单了解一下,分布式事务场景与CAP理论概念分享。
一、分布式事务场景
一个项目对应一个数据库,这种单机业务是平时处理的比较多的;这里主要归纳一下会出现分布式事务的场景。
1、一个项目多个数据库
这种情况一般是并发量不大,但数据量比较大的情况,就比如一些采集设备数据做实时分析的系统,如传感器数据、电机状态等,经过一段时间,数据量会很多,导致单个数据库效率变低,所以通常会采用分业务存储。
2、多个项目一个数据库
有些系统需要将业务分开开发和部署,便于代码管理和后期维护,在数据库资源允许的情况下可以共用一个数据库,在这种情况下如果有事务操作,同样需要分布式事务进行处理。
3、多个项目多个数据库
这种方式其实就是微服务模式,分业务划分项目,每个业务对应一个数据库,这种场景下项目之间的事务肯定是分布式的啦
二、CAP理论
对于分布式应用场景,有很多因素是不可控的,如网络不通、设备宕机、自然灾害等原因导致服务不可用,这种情况对于分布式而言需要有一定的取舍,不能因为个别服务的不可用,导致整个系统崩掉。通常CAP理论会成为分布式指标的取舍,根据系统业务需求,满足其中两个指标即可。
CAP是Consistency(一致性)、Availability(可用性)、PartitionTolerance(分区容错性)三个词的缩写,具体含义如下:
C(Consistency-一致性):是指在写操作之后,任意节点进行读取时,都能一致获取到新的数据状态。为了保证数据一致性,在同步数据时会就资源短时进行锁定,目的为了避免获取的老的数据,导致数据不一致情况,但这样就会导致服务在短时间内不可用。
A(Availability-可用性):是指发起任何操作时都可以得到响应结果,不会出现响应超时或响应错误。就算是数据在同步过程中也要保证可用,即宁可拿到旧数据也不要报错。
P(PartitionTolerance-分区容错性):这里的分区是指网络分区,通常分布式系统,各节点会部署到不同子网,由于网络具有不可控性,可能会导致节点之间的通信失败;但在设计此类系统时,应该考虑这种情况,保证提供正常的服务,这其实可以理解为平时咱们说的高可用;这个指标是分布式系统必备的,不然就不能叫高可用系统啦。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。