Apache Pegasus 2.5.0 介绍与选型指南
Apache Pegasus 2.5.0 介绍与选型指南:小米起源、仍在孵化的 Redis 协议兼容分布式 KV 存储(最新稳定版 2.5.0 停在 2023-12,发版已停滞近三年),讲清 MetaServer/ReplicaServer 架构、PacificA 强一致复制、RocksDB 引擎与冷备份/duplication 特性,并以 Redis Cluster、Kvrocks、ScyllaDB、TiKV 给出量化选型对比。
Apache Pegasus 2.5.0 介绍与选型指南
目标:基于 Apache 孵化器状态页、GitHub Releases 与官方网站的联网溯源(查询日期 2026-10-19),讲清 Apache Pegasus(Incubating)——一个哈希分表、PacificA 强一致、以 RocksDB 为引擎的 Redis 协议兼容分布式 KV 存储——的定位、架构、特性与最新稳定版 2.5.0 的现状,并给出与 Redis Cluster、Kvrocks、ScyllaDB、TiKV 的量化选型对比。本文为认知篇,不做本地部署实测。
一、信息基准
本节给出本文全部关键数据的基准与来源,所有版本号与状态信息均在 2026-10-19 联网核验。
- 查询日期:2026-10-19。
- 基准版本:2.5.0(官方最新稳定版,2023-12-12 发布)。截至查询日期,2.5.0 之后约 2 年 10 个月没有新版本发布,属发版停滞状态;项目仍在孵化器内(孵化状态页无毕业记录,Attic 无退役记录)。
- 维护方:Apache 软件基金会孵化器 podling,2020-06-22 进入孵化;起源于小米(Xiaomi)内部 KV 存储系统并捐献(官网 Presentations 页收录小米 2016–2021 年间多次落地实践分享,含"小米超千套 Pegasus 集群管理"等)。
- 许可:Apache License 2.0(仓库 License 徽章与 ASF 规范)。
- 发行形态:C++ 源码发行件(官方发行目录仍提供 2.4.0/2.5.0)+ GitHub 源码仓;客户端支持 Java/C++/Go。
- 版本依据(含来源 URL,查询日期 2026-10-19):
- 孵化状态页(版本新闻止于 2.5.0):https://incubator.apache.org/projects/pegasus.html
- GitHub Releases:https://github.com/apache/incubator-pegasus/releases (2.5.0,2023-12-14 标签)
- 官方发行目录:https://downloads.apache.org/incubator/pegasus/ (2.4.0/、2.5.0/ 目录实查存在)
- 官方网站:https://pegasus.incubator.apache.org/ (Overview 页实查可访问)
二、软件概述
2.1 项目定位
Apache Pegasus(孵化中)是一个分布式键值存储系统,官方设计目标四条:水平可扩展(基于哈希的分区)、强一致(PacificA 共识协议)、高性能(以 RocksDB 为底层存储引擎)、简单(清晰易用的 API)。官方背景说明其定位是填补 Redis 与 HBase 之间的空档:Redis 内存态、低延迟但无强一致保证;HBase 通用但重;Pegasus 完全用 C++ 编写,写入路径只依赖本地文件系统,追求"持久化 + 强一致 + 低延迟"的中间点。它提供 Redis 协议兼容的接入能力(官方文档含 Redis 兼容客户端指引),并支持 Hash/SortKey 两级数据模型。除小米外,官网 Presentations 页也收录了神策数据(SensorsData)等多家公司的生产实践分享。
2.2 版本现状与风险
截至 2026-10-19:项目仍为孵化 podling(2020-06-22 入孵),但最后一个稳定版 2.5.0 发布于 2023-12-12,此后无新版本;孵化器状态页版本新闻同样止于 2.5.0(仅 2024-09 新增一名 committer)。对新项目而言,应将其视为"可用但停滞"的存储系统:功能可用、生产案例多,但版本演进与问题修复节奏无法预期,选型需把这个现状作为首要风险项。
三、核心架构
3.1 三类服务角色
依据官方 Overview 与仓库 README(查询日期 2026-10-19):
- MetaServer:元数据服务,管理表与分片的元信息,并内置自动负载均衡——当副本分布不均衡时,管理员触发 rebalance 命令即可自动调度副本迁移;
- ReplicaServer:数据服务,承载实际分片(partition)与副本;每次写操作在响应客户端前三副本复制到不同 ReplicaServer,由 PacificA 协议保证强一致复制与成员变更;
- Collector:监控与指标汇总角色,汇集集群运行指标供监控使用。
💡 技术拓展:分布式 KV 的共识与复制策略对比——
策略 代表 特点 PacificA Pegasus 强一致主备复制与配置管理,面向多副本写应答 Raft TiKV、etcd 强一致选主+日志复制,生态最广 主从异步复制 原生 Redis 主从 低延迟,故障切换可能丢数据 一致性哈希 + 无主复制 Cassandra/ScyllaDB 高可用易运维,一致性可调但默认最终一致 Pegasus 实际采用 PacificA:写路径三副本确认后才应答客户端,换取强一致。
3.2 存储引擎与数据模型
单机存储引擎为 RocksDB(2.5.0 起改用 RocksDB 官方发行版构建,去除了历史 fork 的改动,见 2.5.0 Release 说明);数据按哈希分表(hash-based partitioning)切分,表内支持 Hash/SortKey 两级结构(同一 Hash Key 下可按 SortKey 排序存取),适合"主键 + 列/时间线"类 KV 场景。
3.3 客户端与生态
官方维护 Java、C++、Go 三种语言的客户端(README 列出仓库路径);分析生态提供 pegasus-spark(快照数据接入 Spark 分析)。依赖组件包括 ZooKeeper(元数据协调)等基础设施。
四、关键特性
以下特性依据官方 Overview 页与 2.5.0 Release 说明归纳(查询日期 2026-10-19):
- 数据持久化与强一致:写请求三副本复制应答,PacificA 协议保证复制与成员变更的一致性;
- 自动负载均衡:MetaServer 内置均衡调度,一条 rebalance 命令自动迁移副本;
- 冷备份(Cold Backup):可扩展的备份/恢复机制,快照可落在 HDFS 等分布式文件系统或本地文件系统,快照可再交给 pegasus-spark 做离线分析;
- duplication 异地复制:机房(集群)间的最终一致复制特性,本地集群的变更短延时后可达远端集群,用于跨机房容灾与就近读取;
- 在线 partition split:支持在线分区分裂,扩容不停止服务(Overview 页"多级数据安全、快速机房迁移、自动均衡、在线 split"诉求项);
- Redis 协议兼容接入:提供 Redis 兼容客户端指引,存量 Redis 业务可低改动迁移;
- 固有限制:C++ 部署运维门槛高;依赖 ZooKeeper 等组件;最后版本 2.5.0 停在 2023-12,仍在孵化期,社区活跃度低(主仓星标 2.1k,2026-10-19 实查)。
五、快速上手
以下为官方上手路径的转述(来源:https://pegasus.incubator.apache.org/ Overview 与官方文档站,查询日期 2026-10-19;认知篇不重复本地部署实测):
- 获取发行件:从官方发行目录 https://downloads.apache.org/incubator/pegasus/2.5.0/ 下载 2.5.0 的源码发行件(配合同目录 KEYS 做签名校验),或直接使用 GitHub Releases 标签 v2.5.0 的源码快照;
- 编译构建:按官方文档站(https://pegasus.incubator.apache.org/docs/ )的构建章节以源码方式编译 Server 与客户端(C++ 工具链 + RocksDB 官方版依赖,2.5.0 Release 说明明确改用官方 RocksDB 发行版);
- 单机体验:官方文档提供 onebox 模式——在一台机器上以脚本拉起 MetaServer/ReplicaServer/Collector 的最小集群,用于功能体验与开发验证;
- 客户端接入:选择 Java/C++/Go 客户端建表读写;存量 Redis 业务可评估 Redis 兼容客户端路径;
- 运维入口:官方提供 shell 运维工具(建表、查状态、rebalance 等),详见官方文档站的运维章节。
⚠️ 注意:2.5.0 已近三年无后续版本,投产前应评估自维护补丁的能力;官方文档站的下载入口若指向新版本目录,以官方发行目录实查为准(2026-10-19 实查为 2.4.0/2.5.0 两个版本)。
六、适用场景与限制
适用场景:
- 超大规模、结构化 KV 存储:Hash/SortKey 两级模型适合用户画像、特征缓存、消息时间线、广告数据流等场景(官网 Presentations 收录小米与神策的此类实践);
- 对强一致与持久化有硬要求、同时又想保有 Redis 式低延迟接口的 KV 业务;
- 需要跨机房容灾(duplication)与冷备份(HDFS 快照分析)的大容量 KV 集群。
限制与明确建议:
- 发版停滞近三年(最后 2.5.0,2023-12):安全修补与功能演进均不可预期,不建议新项目无评估地直接采用;
- 仍在孵化期,社区以少数维护者为主,长期治理存在不确定性;
- 部署组件多(Meta/Replica/Collector + ZooKeeper),且需 C++ 工具链编译,运维门槛显著高于 Redis/Kvrocks;
- 新项目的替代路径:Redis 兼容持久化 KV 优先评估 Kvrocks;需要水平扩展的内存 KV 选 Redis Cluster;宽列/超大规模场景评估 ScyllaDB 或 TiKV(见第七章)。
七、同类选型对比
面向"分布式 KV / Redis 兼容存储"的横向对比(星标数为 GitHub 仓库实查值,版本为各仓库 Releases 实查,查询日期 2026-10-19):
| 方案 | 形态 | 当前状态 | 最新版本 | GitHub Stars | 兼容矩阵要点 |
|---|---|---|---|---|---|
| Apache Pegasus 2.5.0 | 强一致持久化 KV(PacificA + RocksDB,C++) | 孵化中,发版停滞 | 2.5.0(2023-12-12) | 2.1k | Redis 协议兼容接入;Hash/SortKey 模型;三副本强一致;依赖 ZooKeeper |
| Redis(Cluster 模式) | 内存 KV + 可选持久化(C) | 活跃 | 8.10.2(2026-09-17) | 77k | Redis 协议原生;Cluster 分片但复制偏异步,强一致非目标 |
| Apache Kvrocks | Redis 协议兼容持久化 KV(RocksDB,C++) | 活跃 | 2.17.0(2026-10-19 实查最新 Release) | 4.5k | 复用 Redis 客户端生态;RocksDB 持久化;Apache 项目 |
| ScyllaDB | 宽列分布式存储(C++,Cassandra 兼容) | 活跃 | 2026.1.15(2026-10-09,年历版本制) | 16k | CQL 接口; Shard-per-core 架构高吞吐;无 Redis 协议 |
| TiKV | 分布式事务 KV(Rust,RocksDB 底层) | 活跃 | v8.5.4 系(2026-10-12 快照标签) | 17k | Raft 强一致 + 分布式事务;常经 TiDB 使用,非 Redis 协议 |
数据来源:各仓库 Releases 页(github.com/<org>/<repo>/releases.atom)与 shields.io 星标接口(查询日期 2026-10-19)。
选型建议:想要"Redis 接口 + 磁盘持久化 + 大容量",Kvrocks 是当前更活跃的 Apache 系选择;纯内存、低延迟、能接受异步复制语义选 Redis Cluster;宽列与超大吞吐场景选 ScyllaDB;需要分布式事务 KV 选 TiKV。Pegasus 的差异化在"强一致三副本 + Hash/SortKey 模型 + 跨机房 duplication",但必须接受其发版停滞与孵化期风险——存量集群可继续运维,新项目应先做替代品比对再决定。
八、参考链接
- 孵化器状态页:https://incubator.apache.org/projects/pegasus.html
- 官方网站 Overview:https://pegasus.incubator.apache.org/
- 官方文档站:https://pegasus.incubator.apache.org/docs/
- GitHub Releases(2.5.0):https://github.com/apache/incubator-pegasus/releases
- 官方发行目录:https://downloads.apache.org/incubator/pegasus/
- 替代方案:Redis https://github.com/redis/redis ;Apache Kvrocks https://github.com/apache/kvrocks ;ScyllaDB https://github.com/scylladb/scylladb ;TiKV https://github.com/tikv/tikv