读写分离:读请求无限扩容
通过不同端口进行读写分离,从库可无限级联复制扩容并自动负载均衡
专用于分析 / ETL的实例,快慢分离规避冲突,轻松应对离线场景查询
- 只读服务:匀指向只读从库,并以主库为兜底副本
- 离线服务:指向特殊标记的从库,或专用分析实例
- 生产记录:通过两个桥接从库级联实现一主三十从
链接池化:高并发手到擒来
内置 PGBouncer 连接池,开箱即用,高并发挑战成为过去式
默认启用事务池化,极大减少并发争用,并显著提高整体吞吐
- 默认事务级池化,将上万级并发转为个位数活跃连接
- 免配置默认启用,自动同步数据库/连接池对象配置
- 支持通过部署多个 pgbouncer 实例绕过其本身瓶颈
负载均衡:控制台流量管控
通过 HAProxy Web 控制台页,运维人员可实时监控和调度请求流量
滚动排干连接与请求,实现无感在线迁移,或在紧急时强制手工接管
- 无状态的 HAProxy 可以随意扩容,或使用专属服务器部署
- 可通过命令行调整权重,排干待下线实例,逐步预热新成员
- 由 Nginx 统一对外暴露密码保护的 HAProxy 图形管控页面
水平扩展:分布式原地改造
Citus 提供了水平伸缩分布式 PostgreSQL 集群的扩展方案,多写多租户
将现有集群原地进行分布式改造,解决单机写入吞吐/数据容量瓶颈问题
- 利用多节点并行处理,加速实时 OLAP 分析
- 按行键或按模式分片,轻松支持多租户场景
- 在线分区重平衡,吞吐容量动态按需扩缩容
存储扩容:外部表透明压缩
利用分析扩展提供的透明压缩能力,实现 10:1 甚至更高的列存压缩比
利用FDW与扩展,读写对象存储中的数据,实现冷热分离,无限扩容
- 利用 timescaledb, pg_mooncake, pg_duckdb 列存储压缩数据
- 利用 duckdb_fdw, pg_parquet, pg_analytics 读写对象存储表
- 利用软硬 RAID,ZFS,PG 表空间等机制在线扩缩容存储容量
批量管理:大规模集群部署
为极致规模而设计,万核大规模集群还是1C单节点都伸缩自如
单套部署纳管节点无上限,规模仅软性约束于监控系统承载力
- 通过 Ansible 进行批量规模化操作,告别控制台鼠标点点点
- 生产环境最大规模部署记录: 25000 vCPU,3000+ 实例
- 通过可选的 VictoriaMetrics 实现监控系统分布式无限扩容
弹性伸缩:云计算他山之石
支持云服务器部署,充分利用云服务器与云磁盘的弹性优势
制定灵活多云策略,用云服务器的价格,享受云数据库弹性
- Pigsty 只使用云服务器足矣,无论哪家云供应商都一样
- 云上云下统一部署,公有云私有云混合云多云无缝切换
- 灵活升降存算规格,按需采购或租赁:买基线,租尖峰