分布式系统(Distributed System)

分布式系统是一种将多个独立计算节点通过网络协作组成统一整体的系统架构,它的核心目标是资源共享、性能扩展与高可用性。在现代互联网体系中,几乎所有大型系统(搜索引擎、电商、支付、云计算平台)都构建在分布式架构之上。


一、概览

分布式系统的逻辑分层

分布式系统通常由以下几个主要部分构成:

中间件作为通信与协调的核心层,连接了整个系统的各个节点:

中间件连接了分布式系统的各个节点


二、网络与通信基础

分布式系统运行在计算机网络之上。网络的可靠性与延迟直接影响系统的一致性、可用性与性能。

1. 网络硬件

2. 网络协议与服务


三、接入与负载均衡层

前端层和接入层负责请求的分发与入口管理。

1. 前端技术

2. 反向代理

3. 负载均衡

负载均衡的核心目标是 将请求均匀分发到后端节点,避免单点瓶颈。


四、分布式中间件

中间件是分布式系统的“胶水层”,承担节点间通信、数据一致性、任务协调、异步传递等关键职责。

1. 分布式协调与同步

2. 数据访问中间件

3. 分布式服务调用(RPC)中间件

4. 分布式消息中间件

5. 分布式链路追踪中间件


五、分布式存储系统

1. 分布式文件系统

业界代表:

设计要点:


2. NoSQL 数据库

NoSQL 以 高可用与扩展性 为目标,通过牺牲部分 ACID 特性(尤其是 C)实现 CAP 平衡。

类型特征代表系统
键值型高速缓存、简单查询Redis、LevelDB、Tair、Dynamo
列存型按列存储、高效聚合Bigtable、HBase、Cassandra
文档型灵活的 schema-free 数据模型MongoDB、CouchDB、RethinkDB
搜索引擎型全文索引与查询优化ElasticSearch、Solr
图数据库图结构关系与遍历Neo4j、JanusGraph
时序数据库时间序列数据采集与分析InfluxDB、Prometheus TSDB

3. NewSQL 数据库

NewSQL 融合了传统关系型数据库与 NoSQL 的优点,兼顾 一致性与可扩展性

代表系统:

关键特性:


六、分布式任务调度

分布式任务调度系统是集群资源管理与作业分配的核心组件。

1. 单体调度(Centralized Scheduler)

一个主节点负责所有调度决策:

2. 两层调度(Two-Level Scheduler)

将调度职责分为两层:

stateDiagram-v2  MPIScheduler --> MesosMaster: 注册任务  HadoopScheduler --> MesosMaster: 注册任务  MesosMaster --> MesosSlave1: 下发任务  MesosMaster --> MesosSlave2: 下发任务  MesosSlave1 --> MesosMaster: 上报资源  MesosSlave2 --> MesosMaster: 上报资源

3. 共享状态调度(Shared-State Scheduler)

每个调度器维护全局状态视图,通过状态存储共享集群信息。

flowchart TD    subgraph Scheduler1[Scheduler]        CellState1[Cell State]    end    subgraph Scheduler2[Scheduler]        CellState2[Cell State]    end    subgraph StateStorage[State Storage]        CellStateStorage[Cell State]    end    Scheduler1 --> |Tasks| StateStorage    Scheduler2 --> |Tasks| StateStorage

七、分布式系统设计思想

1. 云化与虚拟化

2. 一切皆可能失败

3. 水平扩展(Scale Out)

4. 简化与解耦

5. 微服务化与可观测性


八、大型互联网架构共性分析

层级特征实现
分层设计存储层、服务层、接口层、分析层典型三层/四层架构
集群管理容器化、资源池化、独立调度系统Kubernetes、Mesos
存储层文件系统 + 数据库 + 缓存HDFS、MySQL、Redis
服务层RPC 框架 + 注册中心 + 消息队列Dubbo、Kafka、Zookeeper
数据分析实时 + 离线分离Hadoop、Spark、Flink
可观测性监控、日志、追踪、报警体系Prometheus、SkyWalking

九、总结

分布式系统是一门跨越 计算机网络、操作系统、数据库、系统架构 的综合学科。它的核心挑战包括: