Patroni
Patroni是一个PostgreSQL HA模板,带有ZooKeeper,etcd或Consul。您可以在patroni.readthedocs.io上找到一个可搜索且更易于导航的文档版本。有很多方法可以使用PostgreSQL运行高可用性。
Patroni是使用Python的高可用性(HA)PostgreSQL解决方案的模板。为了实现最大的可访问性,Patroni支持各种分布式配置存储,如ZooKeeper、etcd、Consul或Kubernetes。我们称Patroni为“模板”,因为它远不是一个一刀切或即插即用的复制系统。它将有自己的警告,使用起来非常聪明。
目前支持的PostgreSQL版本:9.3到15。
从psycopg2-2.8开始,默认情况下将不再安装psycopg2的二进制版本。从源代码安装它需要C编译器和postgres+python-dev包。由于在python世界中,不可能将依赖项指定为psycopg2或psycopg2-二进制,因此您必须决定如何安装它。
Patroni使用Postgres的流复制,默认情况下是异步的。Patroni的异步复制配置允许进行最大的lag_on_failover设置。此设置可确保在跟随者落后于引导者超过特定字节数时不会发生故障转移。应根据业务需求增加或减少此设置。还可以使用同步复制以获得更好的持久性保证。
应用程序不应使用超级用户:
从应用程序连接时,请始终使用非超级用户。Patroni需要访问数据库才能正常工作。通过使用应用程序中的超级用户,您可以使用superuser_reserved_connections设置来使用整个连接池,包括为超级用户保留的连接。如果Patroni因为连接池已满而无法访问Primary,则这种行为将是不可取的。
实际操作:
已有搭建好数据库的三台服务器,且另外三个zookeeper服务器已就绪。
服务器都是使用的LX虚拟机下的CentOS环境(不建议在LX环境下进行搭建,有限制),在此情况下进行patroni+zookeeper搭建
节点信息:
节点 | IP |
---|---|
ecox01 | 10.9.5.2 |