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 PegasusPegasusApacheNoSQL分布式KV2026/10/19

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.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 的共识与复制策略对比——

策略代表特点
PacificAPegasus强一致主备复制与配置管理,面向多副本写应答
RaftTiKV、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;认知篇不重复本地部署实测):

  1. 获取发行件:从官方发行目录 https://downloads.apache.org/incubator/pegasus/2.5.0/ 下载 2.5.0 的源码发行件(配合同目录 KEYS 做签名校验),或直接使用 GitHub Releases 标签 v2.5.0 的源码快照;
  2. 编译构建:按官方文档站(https://pegasus.incubator.apache.org/docs/ )的构建章节以源码方式编译 Server 与客户端(C++ 工具链 + RocksDB 官方版依赖,2.5.0 Release 说明明确改用官方 RocksDB 发行版);
  3. 单机体验:官方文档提供 onebox 模式——在一台机器上以脚本拉起 MetaServer/ReplicaServer/Collector 的最小集群,用于功能体验与开发验证;
  4. 客户端接入:选择 Java/C++/Go 客户端建表读写;存量 Redis 业务可评估 Redis 兼容客户端路径;
  5. 运维入口:官方提供 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.1kRedis 协议兼容接入;Hash/SortKey 模型;三副本强一致;依赖 ZooKeeper
Redis(Cluster 模式)内存 KV + 可选持久化(C)活跃8.10.2(2026-09-17)77kRedis 协议原生;Cluster 分片但复制偏异步,强一致非目标
Apache KvrocksRedis 协议兼容持久化 KV(RocksDB,C++)活跃2.17.0(2026-10-19 实查最新 Release)4.5k复用 Redis 客户端生态;RocksDB 持久化;Apache 项目
ScyllaDB宽列分布式存储(C++,Cassandra 兼容)活跃2026.1.15(2026-10-09,年历版本制)16kCQL 接口; Shard-per-core 架构高吞吐;无 Redis 协议
TiKV分布式事务 KV(Rust,RocksDB 底层)活跃v8.5.4 系(2026-10-12 快照标签)17kRaft 强一致 + 分布式事务;常经 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",但必须接受其发版停滞与孵化期风险——存量集群可继续运维,新项目应先做替代品比对再决定。

八、参考链接