首页 > 解决方案 > 用于 rds postgres 高可用性的 pgpool

问题描述

RDS Aurora for PostgreSQL 集群有一个写入器和 2 个读取器节点。当存在大量写入活动并且读取器节点滞后于这些更改时,aurora 会停止读取器节点——赶上更新并启动实例。这样做是为了避免过时的读取。

但这会导致在阅读器重新启动时连接到阅读器的应用程序失败,我可以在这种情况下使用 pgpool 或任何其他工具来监视阅读器,并且当它们未启动时,将读取转发给写入器?想要避免应用程序失败,请告知如何最好地解决这个问题。

标签: postgresqlamazon-rdspgpool

解决方案


听起来您可能直接连接到阅读器节点。您需要使用集群的读取器端点进行连接。

如果您选择集群,在“连接性和安全性”选项卡下,您将找到一个包含两个“端点”的表。一个用于只读,另一个用于写入实例。将您的应用程序指向这些,它们将别名为写入器节点,并在读取器节点之间进行负载平衡。当然,我假设您的应用程序正在将只读调用汇集到一个数据库连接并将读/写到另一个数据库连接。

另一种方法是配置 pgpool2 以在您的读/写和只读端点之间进行负载平衡。这样,您的应用程序就不必跟踪哪些调用是只读的等等。


推荐阅读