citus 是一个 PostgreSQL 插件。通过它,可以实现分布式 PostgreSQL,从其官方口号可见一斑:

它允许数据库服务器(称为节点)在“无共享(shared nothing)”架构中相互协调。 这些节点形成一个集群,允许 PostgreSQL 保存比单台计算机上更多的数据和使用更多的 CPU 内核。 这种架构还允许通过简单地向集群添加更多节点来扩展数据库。

架构

citus架构

术语

  • coordinator 协调节点。
  • worker(s) 工作节点。

每个集群都有一个称为 coordinator(协调器) 的特殊节点(其他节点称为 worker 节点)。 应用程序将它们的查询发送到 coordinator 节点,coordinator 节点将其转发给相关的 worker 并累积结果。

对于每个查询,coordinator 要么将其 路由(routes) 到单个 worker 节点,要么将其 并行化(parallelizes) 到多个节点, 具体取决于所需数据是位于单个节点上还是多个节点上。 coordinator 通过查阅其元数据表知道如何做到这一点。 这些 Citus 特定表跟踪 worker 节点的 DNS 名称和运行状况,以及跨节点数据的分布情况。

安装

  • docker
  • 二进制包

部署方式

  • 单机单节点部署
  • 单机多节点部署
  • 多机多节点部署
  • Azure 云平台集群部署

axum 操作 citus

由于 citus 只是一个 PostgreSQL 插件,所以在 axum 中,使用将其视为普通 PostgreSQL 进行操作即可。

需要注意的是,对于多节点 citus 集群来说,axum 应该只连接 coordinator 节点而不要连接任何 worker 节点。

文档