系列文章目录
分布式–1概述CAP和Base
分布式–2分布式事务
分布式–3分布式一致性算法
分布式-4集群
分布式–5服务限流算法
分布式–6分布式id
分布式–7性能压测
分布式–8日志链路跟踪
分布式-9分布式锁|redis锁的几种实现
一、概述
1、CAP理论:
C(一致性) 如果在某个节点更新了数据,那么在其他节点如果都能读取到这个最新的数据,那么就称为强一致,如果有某个节点没有读取到,那就是分布式不一致。即所有的节点同时看到相同的数据
A (可用性):非故障的节点在合理的时间内返回合理的响应。任何时候,读写都是成功的。
P (分区容错性):当部分节点出现消息丢失或故障的时候,分布式系统仍能正常工作。
CAP理论认为:一个分布式系统最多只能同时满足,一致性,可用性,分区容错性的三项中的两项。由于分区容错性是必然存在的,所以大部分分布式软件系统都在CP和AP中做取舍
Zookeeper 采用CP一致性,强调一致性,弱化可用性。(leader宕机后重新选举期间不可用)
当出现网络分区后,为了保证一致性,就必须拒绝请求。
Eureka 采用AP可用性,强调可用性,弱化一致性。
2、Base理论
即基本可用(Basically Available),软状态(Soft State),最终一致性(Eventually Consistent)。既然无法做到强一致性,那么不同的应用可用根据自己的业务特点,采用适当的方式来达到最终一致性。Base理论是对CAP理论的实际应用
1)基本可用性:
不追求强可用性,而且强调系统基本能够一直运行对外提供服务,当分布式系统遇到不可预估的故障时,允许一定程度上的不可用,比如:对请求进行限流排队,使得部分用户响应时间变长,或对非核心服务进行降级。
2)软状态:
对于数据库中事务的原子性:要么全部成功,要不全部不成功。软状态允许系统中的数据存在中间状态。
3)最终一致性:
数据不可能一直都是软状态(弱一致性),必须在一个时间期限之后达到各个节点的一致性。在此之后,所有的节点的数据都是一致的。系统达到最终一致性。
3、酸碱平衡理论
ACID在英文中的意思是“酸”,BASE的意思是“碱”,这一段讲的是“酸碱平衡”的故事。