再高性能的服务器,都存在硬件上限。CPU核数、内存容量、磁盘IO、网络带宽,都是物理瓶颈。更棘手的是,单台服务器天然存在单点故障风险。集群技术就是为解决这类问题诞生,把多台服务器通过网络连接,协同处理任务,对外呈现为一套性能更强的整体系统。
集群最基础单元是节点,每一台参与集群的服务器都叫节点,节点之间依靠高速网络通信。节点可以共享存储,也可以各自保存本地数据。多台服务器协同工作,需要调度或管理组件,负责分配任务、监控节点健康,节点故障时自动迁移业务。心跳机制用来检测节点存活状态,一旦节点失联,集群标记该节点不可用,将业务迁移到其余正常节点。

按照用途划分,集群分为几类。高可用集群目标是保障业务不间断,常见方案为主备或者双活,一台主机承载业务,另一台持续监控,主节点故障,备节点快速接管业务。负载均衡集群前端部署调度器,把用户请求分发到后端多台服务器,LVS、Nginx、HAProxy都是这类实现思路。高性能计算集群拆分大型任务,拆分为大量子任务分发到几十上百台服务器并行运算,天气预报、基因分析、渲染场景大量使用。存储集群把多台服务器硬盘整合为统一存储池,Ceph、GlusterFS属于这类方案。数据库集群、容器集群逻辑相近,将多个实例组织起来,对外提供统一访问入口。
集群具备几项明显特点。可扩展性很突出,性能不足直接新增节点,横向扩容相比升级单机硬件成本更低,操作简单。高可用依靠冗余设计,单点故障不会造成整体业务中断。负载均衡把请求分散到各个节点,避免单台服务器过载。高性能来自并行计算,多台服务器同时处理任务,大幅缩短总耗时。容错能力体现在节点损坏自动切换,数据保留副本,业务持续运行。资源池化统一调度CPU、内存、存储,资源利用率高于多台独立单机。透明性意味着用户无需感知后端节点数量,直接使用服务。成本优势也值得一提,普通服务器搭建集群,就能获得接近大型机的可靠性,采购成本远低于昂贵大型机。
但集群也有对应的代价。管理复杂度上升,节点数量越多,网络配置、监控、故障排查工作量越大。分布式架构会带来数据一致性难题,数据同步、网络分区都是需要面对的问题,CAP理论描述了该底层约束。部分集群为保证强一致性牺牲可用性,部分方案接受最终一致性换取更高可用。集群性能提升不是线性增长,节点翻倍不等于性能直接翻倍,节点间通信开销、调度成本会消耗一部分算力。节点之间的协调本身消耗资源,集群规模越大,这类开销越明显。
适用场景很清晰。需要7×24小时不间断服务、流量波动幅度大、计算任务繁重、数据体量超出单机承载上限,适合部署集群。小型网站单机完全够用,强行搭建集群只会增加运维负担,配置失误还会引入新故障。集群是一种技术手段,不是最终目标。是否搭建集群,要看业务是否真的需要多台服务器共同承载。理解集群核心,就是明白它依靠冗余换取可靠性,依靠分布式架构提升性能,同时需要承担复杂度上升带来的成本。