架构 | 笔记6
作者:互联网
如下内容来之https://time.geekbang.org/column/article/6463 学习笔记:
对于设计分布式系统的架构师来说,CAP 是必须掌握的理论。
CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一个猜想,
第一版:
对于一个分布式计算系统,不可能同时满足一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三个设计约束
第二版:
在一个分布式系统中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区容错性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。
CAP 应用
虽然 CAP 理论定义是三个要素中只能取两个,因为网络本身无法做到 100% 可靠,有可能出故障,所以分区是一个必然的现象。
如果我们选择了 CA 而放弃了 P,那么当发生分区现象时,为了保证 C,系统需要禁止写入,当有写入请求时,
系统返回 error(例如,当前系统不允许写入),这又和 A 冲突了,因为 A 要求返回 no error 和 no timeout。因此,分布式系统理论上不可能选择 CA 架构,前提是发生了分区,只能选择 CP 或者 AP 架构。
- CAP 关注的粒度是数据,而不是整个系统。
- CAP 是忽略网络延迟的。
- 正常运行情况下,不存在 CP 和 AP 的选择,可以同时满足 CA。
- 放弃并不等于什么都不做,需要为分区恢复后做准备。
最典型的就是在分区期间记录一些日志,当分区故障解决后,系统根据日志进行数据恢复
如何设计计算高可用架构?
冷备:备机上的程序包和配置文件都准备好,但备机上的业务系统没有启动(注意:备机的服务器是启动的),主机故障后,需要人工手工将备机的业务系统启动,并将任务分配器的任务请求切换发送给备机。
温备:备机上的业务系统已经启动,只是不对外提供服务,主机故障后,人工只需要将任务分配器的任务请求切换发送到备机即可。冷备可以节省一定的能源,但温备能够大大减少手工操作时间,因此一般情况下推荐用温备的方式。
业务高可用的保障:异地多活架构
异地多活架构可以分为同城异区、跨城异地、跨国异地 ; 核心思想异地多活设计的理念可以总结为一句话:采用多种手段,保证绝大部分用户的核心业务异地多活!;
接口级故障的四种应对方法,分别是降级、熔断、限流和排队,希望对你有所帮助。
标签:架构,分区,CAP,备机,笔记,异地,多活 来源: https://www.cnblogs.com/dongxizhen/p/16212176.html