上善若水

水善利万物而不争
随笔 - 175, 文章 - 0, 评论 - 10, 阅读 - 14万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

架构 | 笔记6

Posted on   董锡振  阅读(36)  评论(0编辑  收藏  举报

如下内容来之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。
  • 放弃并不等于什么都不做,需要为分区恢复后做准备。

 

最典型的就是在分区期间记录一些日志,当分区故障解决后,系统根据日志进行数据恢复

 

 

如何设计计算高可用架构?

 

 

 

冷备:备机上的程序包和配置文件都准备好,但备机上的业务系统没有启动(注意:备机的服务器是启动的),主机故障后,需要人工手工将备机的业务系统启动,并将任务分配器的任务请求切换发送给备机。

温备:备机上的业务系统已经启动,只是不对外提供服务,主机故障后,人工只需要将任务分配器的任务请求切换发送到备机即可。冷备可以节省一定的能源,但温备能够大大减少手工操作时间,因此一般情况下推荐用温备的方式。

 

 

 

 

 

 

 

业务高可用的保障:异地多活架构

异地多活架构可以分为同城异区、跨城异地、跨国异地 ; 核心思想异地多活设计的理念可以总结为一句话:采用多种手段,保证绝大部分用户的核心业务异地多活!;

 

 接口级故障的四种应对方法,分别是降级、熔断、限流和排队,希望对你有所帮助。

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示