用于 rds postgres 高可用性的 pgpool
pgpool for high availability of rds postgres
RDS Aurora for PostgreSQL 集群有一个写入器和 2 个 reader 节点。当有大量写入 activity 并且 reader 节点滞后于赶上这些更改时,极光会停止 reader 个节点——赶上更新并启动实例。这样做是为了避免过时的读取。
但这会导致连接到 reader 的应用程序在 reader 重新启动时失败,我可以在这种情况下使用 pgpool 或任何其他可以监视 reader 的工具吗s 并且当它们没有启动时,将读数转发给作者?想要避免应用程序失败,请告知如何最好地解决这个问题。
听起来您可能会直接连接到 reader 节点。您需要使用集群的 reader 端点进行连接。
如果您 select 集群,在“连接和安全”选项卡下,您会发现 table 有两个“端点”。一个用于只读实例,另一个用于写入实例。将您的应用程序指向这些,它们将别名到写入器节点,并在 reader 节点之间进行负载平衡。当然,我假设您的应用程序正在将只读调用汇集到一个数据库连接,并将 read/write 汇集到另一个数据库连接。
另一种方法是配置 pgpool2 以在您的 read/write 和只读端点之间进行负载平衡。这样您的应用程序就不必跟踪哪些调用是只读的等等。
RDS Aurora for PostgreSQL 集群有一个写入器和 2 个 reader 节点。当有大量写入 activity 并且 reader 节点滞后于赶上这些更改时,极光会停止 reader 个节点——赶上更新并启动实例。这样做是为了避免过时的读取。
但这会导致连接到 reader 的应用程序在 reader 重新启动时失败,我可以在这种情况下使用 pgpool 或任何其他可以监视 reader 的工具吗s 并且当它们没有启动时,将读数转发给作者?想要避免应用程序失败,请告知如何最好地解决这个问题。
听起来您可能会直接连接到 reader 节点。您需要使用集群的 reader 端点进行连接。
如果您 select 集群,在“连接和安全”选项卡下,您会发现 table 有两个“端点”。一个用于只读实例,另一个用于写入实例。将您的应用程序指向这些,它们将别名到写入器节点,并在 reader 节点之间进行负载平衡。当然,我假设您的应用程序正在将只读调用汇集到一个数据库连接,并将 read/write 汇集到另一个数据库连接。
另一种方法是配置 pgpool2 以在您的 read/write 和只读端点之间进行负载平衡。这样您的应用程序就不必跟踪哪些调用是只读的等等。