PostgreSQL之Citus分片架构部署

Citus架构介绍

Postgresql由于强大的功能和良好的扩展性,基于postgresql来做的分布式架构也比较多,大部分用于分析类场景。
Citus以插件的方式扩展到postgresql中,独立于postgresql内核,所以能很快的跟上pg主版本的更新,部署也比较简单,是现在非常流行的分布式方案。Citus在苏宁有大规模应用,微软也提供citus的商业支持。下面是citus的架构:
PostgreSQL之Citus分片架构部署_第1张图片
Citus节点主要分为协调节点和工作节点,协调节点不存储真实数据,只存储数据分布的元信息,实际的数据被分成若干分片,打散到不同worker节点中,应用连接协调节点,协调节点进行sql解析,生成分布式执行计划,下发到worker节点执行,cn将结果汇总返回客户端。

Ciitus的主要架构特点如下:
①有两种表类型:参考表和分布表,参考表每个协调节点和worker节点都有一份完整的副本,分布表则会打散分布到不同worker中。
②可以进行读写分离,如上图cn1为写节点,可以通过再增加多个cn读节点增加集群读的能力,写cn和读cn之间使用流复制进行元数据同步。
③支持MX模式,可以将元数据也存在某些worker节点中,这样使得该worker节点能够直接提供写的能力,以此增加集群写的能力。
④底层worker节点可以通过流复制搭建副本,保证数据高可用。
⑤做join时最好的结果是能够将计算下推到worker节点,但是只有在参考表和其他表做join以及两个表的分布方式相同的情况下才能下推到worker计算,否则需要将数据拉到协调节点进行计算。
⑥整体架构类似mycat的中间件,因为没有全局事务管理,故不能保证数据的实时读一致性,但是性能上相比要好。数据写一致性使用2pc来保证。

部署

  • 环境说明:Centos7.7

安装Citus

官方部署文档:
https://docs.citusdata.com/en/v7.2/installation/production_rhel.html

  1. 获取官方的源,配置好yum
    官方同时提供docker部署方法
curl https://install.citusdata.com/community/rpm.sh | sudo bash
sudo yum install -y citus92_12

官网下载:
https://www.citusdata.com/download/
PostgreSQL之Citus分片架构部署_第2张图片

验证环节参见:
https://blog.csdn.net/liushimiao0104/article/details/81450176

你可能感兴趣的:(数据库)