本章跟着一条线走:把第 2 章定好的一致性语言落地到物理世界里——节点之间到底共享什么东西,决定了整个集群的天性与上限。这条线从"共享磁盘"走到"共享内存"再走到"什么都不共享只靠网络"(Shared-Nothing),并一路看清集群里谁是协调者、谁是存储、谁是副本。
一致性是语义,架构是它的承重墙。想象给一支乐队排座位:有的人共用一份乐谱(共享数据)、有的人各看各的谱靠指挥对齐(不共享数据靠网络协作)。这一章主线是一条物理设计的取舍线:共享的资源越多,单体协调越容易,但瓶颈越集中;共享的资源越少,扩展越自由,但节点间协作要做的功课越多。 我们沿这条线从"共享根最深"一直走到"几乎不共享",最后落在当今主流产品几乎统统选择的 Shared-Nothing 上。
本章最关键的认知转折是:"共享"越少,恰恰是为了让"扩展"越多。Shared-Disk 和 Shared-Memory 看起来资源利用率高、协调轻松,但它们的"共享点"恰恰成了不可伸缩的瓶颈与单点;Shared-Nothing 把资源共享切到最小,逼着靠网络协作,反而换来水平扩展的自由——代价是必须解决分布、路由、一致性这些本书后几章逐个攻克的难题。所以"主流都选 Shared-Nothing"不是偶然,是取舍后的必然。
落地到真实产品时,用三句白话就能把主流架构归类。Shared-Memory 是"一台胖机器":所有节点共用同一套内存,像一人意见大的人在一间屋里拍板,最协调但也最难扩到很大;Shared-Disk 是"一群大脑共用一张纸":各节点各跑各的,但数据统一落在共享磁盘上,写一把锁就把扩展锁死了,恰恰是存储成为瓶颈的那一类(如 Oracle RAC 的痛点);Shared-Nothing 是"一群独立小分队只靠对讲机":谁的数据谁揣着,需要时发消息协作,正是 TiDB、Cassandra 底层都在用的底座。这三句口诀能帮你从"这张架构图讲什么"直接跳到"它的瓶颈会在哪"。
架构把节点组织起来了,但"数据到底住在哪个节点、来一个请求该敲哪扇门"还不知道答案——这正是第 4 章数据分布与路由要解决的:分片把数据按下棋格摊开,元数据和路由代理变成那张"该敲哪扇门"的电话簿。第 3 章的节点骨架,到第 4 章才算真正各就各位。