分布式系统设计方法论
设计分布式系统,最难的不是学概念,是拿到需求知道从哪下手。不是找最优解——最优解不存在。
「2026-08」的文章 清除筛选
设计分布式系统,最难的不是学概念,是拿到需求知道从哪下手。不是找最优解——最优解不存在。
多节点下,谁说了算?锁和选主都是排他性地让一个节点说了算,只是生命周期不同。
一个操作跨多个数据库、多个服务,没有谁替你兜底。分布式事务就是让多个独立操作原子完成。
数据分散在多个节点,消息不可靠,机器随时挂。现在需要这些节点就一个值达成一致——这就是共识。
数据有多个副本,读的时候能看到哪个版本?一致性模型就是系统给外部的承诺——从线性到最终,不是开关,是刻度。
单机上代码执行顺序就是时间顺序。到了分布式系统,铁律就碎了——没有全局时钟,消息到达顺序不固定。
复制是同一份数据放多份,分区是把不同数据放不同地方。数据量超过单机磁盘时,只能切开。
每台机器只有「部分的真相」。复制是把同一份数据放到多台机器上,让系统在单机挂掉时还能继续服务。 为什么需要复制 单机有物理上限。数据量可能超过单机磁盘,请求量可能超过单机 CPU,还有机器故障、机房断电这些不可抗力。复制把数据拷贝到多台机器,用冗余换可用性。这是分布式系统最原始的动力——如果一台机器
把三台机器放在一起,不等于就有了分布式系统。真正的分布式系统,是让多台机器协同完成一件事——而这件事的复杂度,恰好来自「协同」二字。 为什么单机到多机不是简单的数量变化?因为单机上一切井然有序:数据在同一个内存空间,时钟只有一个,锁一把就够。一旦跨了机器,这三样全部失效。 分布式系统的所有复杂度,可