按用途整理常见的开源分布式系统及其官方入口。本清单用于技术选型的初步调研,不代表性能排名或项目推荐。
最后核对:2026-09-01;“主要语言”仅指服务端或核心实现,不包含全部客户端、插件和管理界面。
- 项目应支持多节点协同、横向扩展、复制、分片或容错中的至少一项。
- 主清单优先收录使用 OSI 认可许可证、仍可获得维护版本的项目。
- 已退休或归档的项目移至历史项目,源码可见但使用受限的项目移至源码可用但非-osi-开源。
- 一个项目可能横跨多个领域;为避免重复,放在最能体现其核心用途的分类中。
- 分布式存储
- 消息队列与事件流
- 批处理、流处理与数据集成
- 资源管理、调度与云平台
- 分布式数据库
- OLAP 与分布式 SQL 查询引擎
- 分布式缓存
- 协调、服务发现与配置中心
- 分布式 ID
- 日志与可观测性
- 分布式机器学习与通用计算
- Kubernetes Operators
- 源码可用但非 OSI 开源
- 历史项目
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Alluxio | Java | 位于计算与底层存储之间的数据访问和缓存层 |
| Fluid | Go | 面向 Kubernetes 的数据编排与缓存加速 |
| lakeFS | Go | 为对象存储提供类 Git 的数据版本管理;本身不是对象存储 |
| 项目 | 主要语言 | 类型 |
|---|---|---|
| Ceph | C++ | 统一的对象、块和文件存储 |
| Apache HDFS | Java | 面向大文件和高吞吐访问的分布式文件系统 |
| Apache Ozone | Java | Hadoop 生态的分布式对象存储 |
| MinIO | Go | 兼容 S3 API 的对象存储;社区版目前仅发布源码,不再提供预编译版本 |
| SeaweedFS | Go | 文件、对象及键值存储 |
| JuiceFS | Go | 构建在对象存储之上的 POSIX 文件系统 |
| CubeFS | Go | 云原生分布式文件与对象存储 |
| Curve | Go / C++ | 分布式块与文件存储 |
| GlusterFS | C | 通用分布式文件系统 |
| Lustre | C | 面向 HPC 的并行文件系统 |
| MooseFS | C | 通用容错分布式文件系统 |
| LizardFS | C++ | MooseFS 衍生的分布式文件系统 |
| OpenAFS | C | AFS 协议的分布式文件系统实现;原清单中的 OpenFS 为误写 |
| Tahoe-LAFS | Python | 去中心化、端到端加密的文件存储 |
| Garage | Rust | 面向自托管场景的轻量级 S3 对象存储 |
| IPFS / Kubo | Go | 点对点内容寻址网络,不是传统共享文件系统 |
| LeoFS | Erlang | 兼容 S3 API 的分布式对象存储 |
| Quantcast File System | C++ | 面向大规模 MapReduce 工作负载的文件系统 |
| XtreemFS | Java / C++ | 跨地域分布式文件系统;采用前应先评估维护活跃度 |
延伸参考:Wikipedia:分布式文件系统比较、OSS Insight:Distributed File Storage。
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Apache Kafka | Java | 分布式事件流、持久化日志和流处理平台 |
| Apache Pulsar | Java | 计算与存储分离的消息和事件流平台 |
| Apache RocketMQ | Java | 分布式消息与事件流平台 |
| RabbitMQ | Erlang | 支持 AMQP 等协议的消息代理 |
| Apache ActiveMQ | Java | 包含 ActiveMQ Classic 与 Artemis 的消息代理项目 |
| NATS | Go | 轻量级消息系统;JetStream 提供持久化和复制 |
| NSQ | Go | 去中心化的实时分布式消息平台 |
| QMQ | Java | 去哪儿开源的分布式消息中间件 |
ZeroMQ(C++)和 JeroMQ(Java)是消息通信库,不是可独立部署的分布式 Broker,因此不与上表混为一类。
| 项目 | 主要语言 | 模型 |
|---|---|---|
| Apache Spark | Scala / Java | 批处理、流处理、SQL 与机器学习 |
| Apache Flink | Java | 有状态流处理及有界流(批)处理 |
| Apache Beam | Java / Python / Go | 可运行在多种执行引擎上的统一编程模型 |
| Hadoop MapReduce | Java | Hadoop 的经典批处理模型 |
| Apache Tez | Java | 构建在 YARN 上的 DAG 数据处理框架 |
| Apache Storm | Java / Clojure | 分布式实时流计算 |
| Apache Samza | Java / Scala | 有状态流处理框架 |
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Apache Gobblin | Java | 批式与流式数据集成 |
| Debezium | Java | 数据库变更数据捕获(CDC);不是数据库 |
| Apache NiFi | Java | 可视化数据流编排与传输 |
| Apache SeaTunnel | Java | 批流一体的数据集成平台 |
| Apache Flume | Java | 分布式日志及事件采集 |
| Loggie | Go | 云原生日志采集 |
| Fluent Bit | C | 轻量级日志、指标和链路数据处理器 |
| Fluentd | Ruby / C | 统一日志采集层 |
| Vector | Rust | 可观测数据管道 |
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Kubernetes | Go | 容器编排与集群资源管理 |
| Apache Hadoop YARN | Java | Hadoop 集群资源管理与任务调度 |
| Volcano | Go | Kubernetes 原生批处理和高性能工作负载调度 |
| Karmada | Go | 多 Kubernetes 集群编排 |
| Slurm | C | HPC 与大规模计算集群的作业调度和资源管理 |
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Apache CloudStack | Java | IaaS 云计算平台 |
| OpenStack | Python | 数据中心云基础设施平台 |
| OpenNebula | C++ / Ruby | 私有云和边缘云管理平台 |
| 项目 | 主要语言 | 定位 |
|---|---|---|
| TiDB | Go | 兼容 MySQL 协议的分布式 SQL 数据库 |
| YugabyteDB | C++ / Java | 兼容 PostgreSQL/Cassandra API 的分布式数据库 |
| OceanBase | C++ | 分布式关系数据库 |
| Vitess | Go | MySQL 水平扩展与分片中间件 |
| Apache ShardingSphere | Java | 数据库分片、治理和分布式事务生态 |
| Citus | C | PostgreSQL 分布式扩展 |
| rqlite | Go | 基于 SQLite 和 Raft 的轻量级分布式关系数据库 |
| 项目 | 主要语言 | 类型 |
|---|---|---|
| TiKV | Rust | 支持事务的分布式键值存储 |
| FoundationDB | C++ | 有序、事务型分布式键值数据库 |
| Apache HBase | Java | 基于 HDFS 的分布式宽列数据库;原清单中的 HBAse 为误写 |
| Apache Cassandra | Java | 去中心化宽列数据库 |
| Apache Accumulo | Java | 基于 Hadoop、ZooKeeper 的有序宽列存储 |
| Apache CouchDB | Erlang | 支持多主复制的文档数据库 |
| eXist-db | Java | XML 原生数据库 |
| NebulaGraph | C++ | 分布式图数据库 |
| JanusGraph | Java | 使用外部存储后端的分布式图数据库 |
| Apache HugeGraph | Java | 分布式图数据库 |
Apache Phoenix 是 HBase 之上的 SQL 层,不是独立数据库,参见 Apache Phoenix。
| 项目 | 主要语言 | 定位 |
|---|---|---|
| ClickHouse | C++ | 列式 OLAP 数据库 |
| Apache Doris | Java / C++ | 实时分析型 MPP 数据库 |
| Apache Druid | Java | 实时分析数据库;已从原“分布式数据库”分类移入此处 |
| Apache Pinot | Java | 低延迟实时 OLAP 数据库 |
| StarRocks | Java / C++ | 实时分析型 MPP 数据库 |
| Apache Kylin | Java | 面向大数据的多维分析平台 |
| Apache Kudu | C++ | 面向快速分析的分布式列式存储引擎 |
| Apache Cloudberry | C | 基于 PostgreSQL 的 MPP 数据库 |
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Trino | Java | 跨异构数据源的分布式 SQL 查询引擎 |
| PrestoDB | Java / C++ | 分布式 SQL 查询引擎;与 Trino 是两个独立项目 |
| Apache Hive | Java | Hadoop 数据仓库与 SQL 引擎 |
| Apache Drill | Java | 面向多种存储的无模式 SQL 查询引擎 |
| Apache Impala | C++ / Java | Hadoop 生态的 MPP SQL 查询引擎 |
| Apache Calcite | Java | 查询解析、优化和执行框架;不是独立 OLAP 数据库 |
| Apache Kyuubi | Scala / Java | 面向 Spark/Flink 的分布式 SQL 网关 |
| Spark SQL | Scala / Java | Apache Spark 的结构化数据处理模块 |
| Flink SQL | Java | Apache Flink 的流批统一 SQL 层 |
| 项目 | 主要语言 | 说明 |
|---|---|---|
| Redis | C / C++ | 内存数据结构存储,支持复制、哨兵和 Cluster;Redis 8 起可选 AGPLv3 |
| Valkey | C | Redis 7.2 的 BSD-3-Clause 社区分支,支持集群模式 |
| Apache Ignite | Java | 分布式内存计算、缓存和数据库平台 |
| Apache Geode | Java | 分布式内存数据管理平台 |
| Memcached | C | 单节点缓存服务;通常依靠客户端一致性哈希组成分布式缓存 |
原清单中的 Chronicle Map 是单 JVM 的持久化堆外 Map;其开源核心本身不提供通用的集群复制,因此不再把它列作分布式内存数据库。
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Apache ZooKeeper | Java | 分布式协调和一致性服务 |
| etcd | Go | 基于 Raft 的一致性键值存储 |
| Nacos | Java | 服务发现、配置和服务管理 |
| Eureka | Java | REST 服务发现组件 |
| Atomix | Go | 面向 Kubernetes 分布式应用的运行时;原 Java 实现已归档 |
| 项目 | 主要语言 | 算法/形态 |
|---|---|---|
| Leaf | Java | 号段模式与 Snowflake 模式的 ID 服务 |
| Sonyflake | Go | Sony 开源的 Snowflake 风格 ID 生成器 |
| UidGenerator | Java | 百度开源的 Snowflake 风格生成器 |
| Tinyid | Java | 滴滴开源的分布式 ID 服务 |
Snowflake 最初指 Twitter 公开的 ID 生成算法/方案,并不是 Sony 的 Go 项目;原清单中的 Snowflake(golang) (sony) 实际应为 Sonyflake。
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Apache BookKeeper | Java | 低延迟、持久化的复制日志存储 |
| Pravega | Java | 面向连续、无界数据的分布式流存储 |
| Grafana Loki | Go | 水平扩展、高可用的日志聚合系统 |
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Prometheus | Go | 监控与时序数据库;单实例为主,常结合 Thanos/Cortex/Mimir 扩展 |
| Thanos | Go | Prometheus 的高可用、长期存储和全局查询层 |
| Cortex | Go | 多租户、水平扩展的 Prometheus 后端 |
| Grafana Mimir | Go | 多租户、长期存储的 Prometheus 后端 |
| VictoriaMetrics | Go | 时序数据库与监控方案,提供集群部署模式 |
| Apache IoTDB | Java | 面向物联网的分布式时序数据库 |
| M3 | Go | 分布式时序数据库与查询引擎 |
| OpenTSDB | Java | 构建在 HBase 上的分布式时序数据库 |
| TDengine | C | 面向物联网和工业场景的时序数据库 |
| Apache SkyWalking | Java | 分布式追踪、指标、日志和 APM 平台 |
| OpenTelemetry | Go / Java 等 | 可观测数据的 API、SDK、语义约定和 Collector |
| 项目 | 主要语言 | 定位 |
|---|---|---|
| Apache Mahout | Scala / Java / C++ | 分布式线性代数与机器学习;原清单中的 mathout 为误写 |
| Ray | Python / C++ | 分布式 Python 与 AI 应用计算框架 |
| Dask | Python | 并行与分布式 Python 计算 |
| Horovod | Python / C++ | 分布式深度学习训练框架 |
| DeepSpeed | Python / C++ | 大模型分布式训练与推理优化库 |
Operator 是分布式系统的部署和运维自动化工具,而不是一类独立的分布式系统。
| 项目 | 管理对象 |
|---|---|
| Strimzi | Apache Kafka |
| Spark Kubernetes Operator | Apache Spark |
| Prometheus Operator | Prometheus 及相关监控组件 |
| CloudNativePG | PostgreSQL |
| Zalando Postgres Operator | PostgreSQL |
| Operator Framework | Operator 的开发、安装和生命周期管理工具集 |
更多项目可参考 Awesome Operators。
下列项目具有公开源码,但当前版本许可证包含额外使用限制,不应与 OSI 定义的开源软件混称。选型前请直接核对对应版本的许可证。
| 项目 | 主要语言 | 说明 |
|---|---|---|
| CockroachDB | Go | 24.3.0 及之后版本采用 CockroachDB Software License |
| Consul | Go | HashiCorp 2023 年起的新版本采用 BUSL-1.1 |
| ScyllaDB | C++ | OSS 6.2.x 是最后的 AGPL 开源系列;2025.1 起为源码可用许可证 |
这些项目适合研究历史架构或维护遗留系统,不建议在未评估替代方案、漏洞修复和社区支持的情况下用于新生产系统。
| 项目 | 原分类 | 状态 |
|---|---|---|
| Apache Mesos | 资源管理 | 2025 年进入 Apache Attic |
| Apache HAWQ | OLAP | 2024 年进入 Apache Attic |
| Apache Chukwa | 监控/日志采集 | 2020 年进入 Apache Attic |
| Apache Sqoop | 数据集成(原清单误列为 OLAP) | 2021 年进入 Apache Attic |
| Scribe | 日志采集 | Facebook 于 2022 年归档 |
| etcd-operator | Kubernetes Operator | 2020 年归档且不再维护 |
欢迎提交 Issue 或 Pull Request。新增或更正条目时,请尽量提供:
- 项目官方主页或官方源码仓库;
- 核心用途与主要实现语言;
- 当前许可证;
- 若项目已停止维护,提供归档或退休公告。
项目状态和许可证会发生变化,生产选型应以项目官方文档及仓库中的最新许可证文件为准。