内容提要
PlanetScale发布Neki平台预览版,这是一个专为Postgres设计的分布式分片系统。每个分片运行真实Postgres,通过路由器解析并分发查询,支持连接池、在线DDL、零停机升级和重新分片。用户可先不分片运行,需要时再扩展。目前仅供测试,不建议用于生产环境。
延伸解读
Neki 的定位:为 Postgres 提供原生分片
Neki 是 PlanetScale 推出的分布式分片系统,专为 Postgres 设计。与一些 Postgres 兼容的分布式数据库不同,Neki 在每个分片上运行真实的 Postgres,不修改存储引擎,因此扩展、SQL 支持和性能表现与原生 Postgres 一致。它通过路由器解析查询并分发到相应分片,再合并结果,应用只需连接一个连接字符串。
从单机到分片:平滑扩展路径
Neki 允许用户先以未分片模式运行,即单个主库加副本,此时即可获得改进的连接池、在线 DDL、零停机升级和健康监控。当单机达到瓶颈时,再通过重新分片工作流将数据分布到多个分片。这种设计让团队无需一开始就应对分片复杂性,而是随业务增长逐步扩展。
在线操作与内置工作流
Neki 将通常需要维护窗口的操作(如模式变更、版本升级、计划内和计划外故障转移、数据导入和重新分片)都实现为内置工作流。这些工作流通过应用使用的同一个 psql 连接执行,自动完成节点配置、数据同步和流量切换。这降低了运维负担,并减少了停机时间。
平台预览阶段:功能与风险
Neki 目前处于平台预览阶段,官方明确表示不应在生产环境运行。产品仍在变化,且部分变更可能不兼容。用户可以通过 PlanetScale 控制台选择加入预览并创建 Neki 集群,体验其功能。对于大型 Postgres 集群,PlanetScale 提供私人演示,帮助评估分片方案。
Q&A
Neki 是什么?
Neki 是 PlanetScale 推出的专为 Postgres 设计的分布式分片系统,目前处于平台预览阶段。每个分片运行真实的 Postgres,通过路由器解析并分发查询,支持连接池、在线 DDL、零停机升级和重新分片。
Neki 的工作原理是什么?
Neki 由四个组件构成:路由器(解析查询、规划并分发到分片)、分片和分片组(每个分片是真实 Postgres,含 1 主至少 2 副本)、连接池(边车进程优化连接管理)、控制平面(监控健康、执行故障转移和重新分片等)。数据拓扑以 JSON 配置映射逻辑表到物理分片。
Neki 和传统分片方案相比有什么优势?
Neki 坚持使用真实 Postgres,不修改存储引擎,保留扩展和完整 SQL 支持。与应用程序级分片相比,它不把路由推给代码;与 Postgres 兼容的分布式数据库相比,它不隐藏分片键,不剥夺扩展,且延迟和复杂度更低。
Neki 支持哪些在线操作?
Neki 将通常需要维护窗口的操作变为内置工作流,包括模式变更、版本升级、计划内和计划外故障转移、数据导入以及重新分片。这些操作都通过应用程序使用的同一个 psql 连接执行。
Neki 可以不分片使用吗?
可以。Neki 支持以不分片模式运行,即单个主节点加副本。这样用户可以在需要分片之前就获得改进的连接池、在线 DDL、零停机升级和健康监控。当需要分片时,重新分片是针对现有集群运行的工作流。
Neki 目前可以用于生产环境吗?
不可以。Neki 目前处于平台预览阶段,产品仍在变化中,部分变更可能不兼容。官方明确建议不要在预览期间运行生产工作负载。