昆明婚恋网站价格,湘潭网站建设优化技术,网站产品展示模板,vps除了做网站还能做什么1 CAP理论
CAP是以下三个词语的缩写#xff1a;
Consistency#xff1a;一致性Availability#xff1a;可用性Partition tolerance#xff1a;分区容忍性
CAP理论的基础概念就是在分布式系统中#xff0c;无法同时满足以上三点。
下面我们以一个简单的分布式系统…1 CAP理论
CAP是以下三个词语的缩写
Consistency一致性Availability可用性Partition tolerance分区容忍性
CAP理论的基础概念就是在分布式系统中无法同时满足以上三点。
下面我们以一个简单的分布式系统解释下为何不同通知满足。 2.1 C 一致性
一致性是指写操作后的读操作可以读取到最新的数据状态当数据分布在多个节点上从任意结点读取到的数据都是最新的状态。
在上图读写分离的环境中因为从库同步主库数据是会存在延迟的必须在写入数据的时候将从库对应的数据加锁同步完成后再释放锁在等待的过程中可以返回错误或失败但要保证客户端读取到的都是最新的数据从而实现一致性。
分布式系统一致性的特点
由于存在数据同步的过程写操作的响应会有一定的延迟。为了保证数据一致性会对资源暂时锁定待数据同步完成释放锁定资源。如果请求数据同步失败的结点则会返回错误信息一定不会返回旧数据。
2.2 A 可用性
可用性是指任何客户端的请求都能得到响应数据不会出现响应错误。
在上图读写分离的环境中即时数据还没有同步过来从数据库也要返回要查询的数据哪怕是旧数据如果连旧数据也没有则可以按照约定返回一个默认信息但不能返回错误或响应超时。
2.3 P 分区容忍性
通常分布式系统的各各结点部署在不同的子网这就是网络分区不可避免的会出现由于网络问题而导致结点之间 通信失败系统需要保证此时仍可对外提供服务这叫分区容忍性。分区容忍性是分布式系统具备的基本能力必须要实现。
在分布式环境下为了保证分区容忍性数据库会采用主从、集群、异地容灾等方式。
在上图读写分离的环境中实现分区容忍性需要保证主从同步失败时不影响读写操作。其一个结点挂掉不影响另一个结点对外提供服务。
需要从以下几点进行实现
尽量使用异步取代同步操作例如使用异步方式将数据从主数据库同步到从数据添加从数据库结点其中一个从结点挂掉其它从节点提供服务。
2.4 组合方式
在所有分布式事务场景中不会同时具备CAP三个特性因为在具备了P的前提下C和A是不能共存的。
分布式系统肯定是需要满足分区容忍性如果再满足一致性对数据同步进行加锁这样就没办法保证可用性了因为可用性时数据不一致也需要查询到结果A C始终是存在冲突的。
2.4.1 CA
放弃分区容忍性即不进行分区不考虑由于网络不通或结点挂掉的问题则可以实现一致性和可用性。那么系统 将不是一个标准的分布式系统我们最常用的关系型数据就满足了CA。
既然是单体那么也就不存在分布式事务的概念了。。。。
2.4.2 AP
放弃一致性追求分区容忍性和可用性。这是很多分布式系统设计时的选择。
AP 模式实现很简单只需要保证集群环境下数据同步正常即可数据虽然可能更新后马上看不到最新的结果但是最终的结果还是正确的即保证最终一致性。
2.4.3 CP
放弃可用性追求一致性和分区容错性。
也就是在分布式环境下必须保证每次结果查询到的数据都是最新的但是可能某个时段去查询会显示数据不可用即保证强一致性。
2.5 总结
一个分布式系统最多只能同时满足 一致性Consistency、可用性Availability和分区容忍性Partition tolerance这三项中的两项。可以作 为我们进行架构设计、技术选型的考量标准。
对于多数大型互联网应用的场景结点众多、部署分散而且现在的集群规模越来越大所以节点故障、网络故障是常态而且要保证服务可用性达到N个999.99…%并要达到良好的响应性能来提高用户体验因此一般都会做出如下选择保证P和A舍弃C强一致保证最终一致性。
3 BASE理论
3.1 强一致性和最终一致性
CAP理论告诉我们一个分布式系统最多只能同时满足一致性Consistency、可用性Availability和分区容忍 性Partition tolerance这三项中的两项其中AP在实际应用中较多AP即舍弃一致性保证可用性和分区容忍 性。
但是在实际生产中很多场景都要实现一致性比如之前图片中主数据库向从数据库同步数据即使不要一致性但是最终也要将数据同步成功来保证数据一致这种一致性和CAP中的一致性不同CAP中的一致性要求在任何时间查询每个结点数据都必须一致它强调的是强一致性但是最终一致性是允许可以在一段时间内每个结 点的数据不一致但是经过一段时间每个结点的数据必须一致它强调的是最终数据的一致性。
3.2 Base理论
BASE是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent (最终一致性)三个词语的缩写。
BASE理论是对CAP中AP的一个扩展通过牺牲强一致性来获得可用性当出现故障允许部分不可用但要保证 核心功能可用允许数据在一段时间内是不一致的但最终达到一致状态。满足BASE理论的事务我们称之为“柔 性事务”。
3.2.1 基本可用
分布式系统在出现故障时允许损失部分可用功能保证核心功能可用。如电商网站交易付款出现问题了商品依然可以正常浏览。
3.2.2 软状态
由于不要求强一致性所以BASE允许系统中存在中间状态也叫软状态这个状态不影响系统可用性如订单的支付中、“数据同步中”等状态待数据最终一致后状态改为“成功”状态。
3.2.3 最终一致
最终一致是指经过一段时间后所有节点数据都将会达到一致。如订单的支付中状态最终会变 为“支付成功”或者支付失败使订单状态与实际交易结果达成一致但需要一定时间的延迟、等待。