分布式系统 小合集
2020-10-19 本文已影响0人
LinkinStar
分布式系统常见定义
CAP
定义
- 一致性(Consistency)
- 可用性(Availability)
- 分区容错性(Partition Tolerance)
一致性
任意时刻,访问任意节点,读取数据一致,否则读取失败。
一致性要求的就是一致,要么读取失败,只要读取成功那么数据就一定是一致的。
可用性
任意时刻,访问任意节点,都能正常返回数据,但数据不保证一致。
可用性要求就是可用,无论你怎么请求,我都能给你返回数据,但是不保证返回的数据是一致的。
分区容错性
当节点间出现任意数量的消息丢失,系统任然可以继续提供服务。
分区容错要求整个集群对内部的节点故障的容错能力。
分区容错性必须保证,对于分布式系统来说这是基础,如果出现节点间的异常而导致整个集群都无法正常工作,这样的分布式系统就如同单点没有区别了。一挂全挂。
Base
定义
- 基本可用 Basically Available
- 软状态 Soft state
- 最终一致 Eventually consistent
基本可用
假设系统出现了不可预知的故障,但是只是原先的体验或者性能受到影响,但是主功能可用
- 流量削峰:将峰值流量平摊到各个时段或者
- 延迟相应:延迟处理的时间,让用户等待排队
- 服务降级:不重要的服务降级,保证主服务正常
- 过载保护:请求排队超过阈值直接丢弃
软状态
允许系统中的数据存在中间状态,这个状态不影响系统的整体可用;允许系统不同节点间,数据副本存在短暂的不一 致。
最终一致性
在没有其他更新操作的情况下,数据最终能够达到一致的状态,所有节点最终都能拿到最新的值。
TCC
定义
- 尝试 Try
- 确认 Confirm
- 取消 Cancel
Try
向每个执行节点发送 需要执行的命令
如果所有节点均同意 -> 则进入 Confirm 阶段
如果存在节点不同意 -> 则进入 Cancel 阶段
Confirm
每个节点执行 命令 并提交
Concel
每个节执行 取消 操作
小合集
难过又厉害的 Paxos
能忍的 PBFT
有责任感的 zab
优秀而惊艳的 raft
巧妙的 一致性 hash
流言蜚语 Gossip