尼基(Neki)现已在平台预览中可用。它基于过去八年运行全球最大分片 MySQL 集群的经验构建,支撑数千生产工作负载,每秒数百万查询,服务于数秒停机便成公开事件的公司。一年半前发布行星规模 Postgres(PlanetScale Postgres)后,我们明白需做得更多。期间接纳数千客户,部分堪比最大 MySQL 客户。我们屡见团队用 Postgres 逼近单机上限,裸金属争时间,但客户触达上限后无合适方案,于是 Neki 出现。
正文
Neki 现已开放平台预览。
Neki 源于我们八年来运行全球最大分片 MySQL 集群的经验。数千个生产负载,每秒数百万次查询,客户哪怕宕机几秒都是公开事故。我们深知支撑世界级 Tier 0 负载意味着什么。
一年半前发布 PlanetScale Postgres 时,我们就知道做得还不够。此后数千客户入驻,其中一些规模已比肩我们最大的 MySQL 客户。我们一次次看到团队触及单机 Postgres 的瓶颈。堆硬件能拖时间,但客户撞上单机上限后,我们发现没有好方案给他们。于是有了 Neki。
什么是 Neki?
Neki 是 PlanetScale 出品的分片 Postgres。它让 Postgres 数据库跨多机扩展,同时每个分片都是真正的 Postgres。
应用通过标准 Postgres 线协议连接 Neki 路由器,现有驱动、ORM 和连接串照常工作。每个分片是完整的 Postgres 集群,含一个主节点和至少两个跨三个可用区的副本。没有自定义存储引擎,扩展、SQL 支持和性能表现都和原生 Postgres 一致。
分片键由你选,通过 JSON 数据拓扑控制表的归组与分布。schema 变更、版本升级、故障切换、导入和重新分片都作为内置的全在线工作流运行。你还能用上 PlanetScale 既有特性:Insights、schema 建议、分支和 MCP。
不必一开始就分片。可先当单主加副本用,等超出单机能力,重新分片就是对现有集群跑一个工作流。
为什么做 Neki?
快速增长下的 Postgres 问题你都懂:表大到 vacuum 或建索引就影响流量,备份耗时几小时,连接数限制,schema 变更要维护窗口,事务回卷等等。
换更大实例能撑一阵,但终会没有更大的机器,而且加核和 IOPS 后问题并非线性缓解。
现有方案都要你牺牲点什么。应用层分片把路由塞进代码;Postgres “兼容”的分布式数据库对你隐藏分片键,拿走扩展能力,还添了难调试的复杂与延迟。
所以我们建 Neki 秉持几条原则,首要一条:紧贴 Postgres,不绕过、不伪造、不背离。
Neki 如何工作?
我们基于 Postgres 第一性原理架构 Neki,每个分片都是真 Postgres。有四个组件。
Neki 路由器
应用先连 Neki 路由器。路由器讲 Postgres 线协议,现有驱动和 ORM 凭单一连接串照用。路由器有完整查询解析器、分布式查询规划器、查询缓冲等。它解析查询,制定涉及哪些分片的计划,分发任务,把结果并回单一流。路由器可垂直和水平扩展,不会单点瓶颈。
分片与分片组
Neki 每个分片是真实 Postgres,1 主至少 2 副本,跨可用区。无修改存储引擎。扩展、SQL 支持和性能即 Postgres 本身。
分片组织为分片组,不同表或负载可放不同分片集。每个分片用配置规范定义实例大小、副本数、存储、Postgres 参数和扩展,从而按流量独立定规格。
连接池
每个 Postgres 实例旁跑 Sidecar。这比在库前摆个 PgBouncer 更强:Neki 控两端连接(路由器侧与 Postgres 侧),能按实例实际服务能力定池大小,而非外部估算。
控制平面
控制平面追踪各节点健康,跑计划切换与意外故障转移,协调重新分片、schema 变更和版本升级的工作流。
数据拓扑
串起一切的是数据拓扑,一份将逻辑表映射到物理分片的 JSON 配置。你定义分片索引(指定路由列及哈希方式)和分片组(控制表集跨多少分片及是哪几个)。路由器缓存拓扑并据此规划。
分片之外的收获
通常需维护窗口的操作,在 Neki 里都是内置工作流。工作流置备新目标节点,用复制追上,通过 __neki 元函数切流量,退役旧节点。全程用应用的同一个 psql 连接。
此在线操作模型覆盖前述各项变更与切换。
Neki 也含 PlanetScale 既有特性:Insights、schema 建议、分支、MCP 等。
什么是平台预览?
我们想尽快让你用上 Neki。预览期请勿跑生产负载。产品仍在变,有些变更不兼容。
预览期有反馈、疑问或问题请告知。提交支持工单或加入 Discord。
即刻试用 Neki
登 PlanetScale,选入平台预览,建 Neki 集群。读 Neki 文档了解架构与分片。
若有大型 Postgres 集群想评估适配度,请联系我们。我们乐意为团队做私有演示,深挖 schema 与查询模式,给出真实分片建议。
评论
社区普遍批评发布帖绕弯子未说清 Neki 是什么,并因产品闭源及 CEO 此前嘲讽开源竞品而不满;少数人称赞官网设计清晰定位明确。
认为发布帖没有说清产品是什么
- 博客各段落大谈背景、替代方案和部署,却迟迟不定义产品,读者需跳转官网才获知它是分片 Postgres(较多人) > 发布帖从头到尾各节都在讲问题和替代方案,却始终没说清 Neki 本身是什么(@gk1)
质疑 Neki 闭源且 CEO 言行不一
- 多名用户指出竞品 multigres 开源,而 Neki 闭源发布,此前 CEO 还贬低对方,令人质疑诚意(较多人) > 首席执行官之前贬低竞品开源方案,自己却搞闭源发布,让人难以认真对待(@xyzzy_plugh)
认可官网设计与信息效率
- 有人称赞落地页设计紧凑美观,且开门见山说清了分片 Postgres 定位(少数人) > 站点设计很紧凑,我喜欢(@behole)
希望补充架构图与竞品对比
- 用户询问与 Google Cloud SQL、pgdog 等差异,要求补充 C2 架构图及非 Postgres 方案(较多人) > 博客里加个 C2 级架构图有帮助,也请说明除新软件必有 bug 外的缺点(@tjohnell)
有价值的补充
- 从官网可知,Neki 实质是在应用与 Postgres 分片间引入一层间接寻址的分片 Postgres 实现(据 @ripe)。
- 有用户注意到旧金山公交车广告与产品发布时间接近,推测线下营销与线上发布同步(据 @kaycebasques)。