RDS Aurora for PostgreSQL集群有一个写入器和两个读取器节点。当有大量的写入活动,并且当读取器节点滞后于这些变化时,aurora停止读取器节点-赶上更新并启动实例。这样做是为了避免陈旧的读取。
但这会导致应用程序在读取器重新启动时连接到读取器失败,在这种情况下,我可以使用pgpool或任何其他工具来监视读取器,当读取器未启动时,将读取的内容转发给写入器吗?想要避免应用程序失败,请建议如何最好地解决此问题。
发布于 2021-07-07 12:54:36
听起来您可能会直接连接到阅读器节点。您将希望使用集群的读取器端点进行连接。
如果您选择集群,在"Connectivity and security“选项卡下,您将找到一个包含两个”Endpoint“的表。一个用于只读,另一个用于写实例。将您的应用程序指向这些节点,它们将别名到写入器节点,并在读取器节点之间进行负载平衡。当然,我假设您的应用程序将只读调用传递给一个数据库连接,而将读/写调用传递给另一个数据库连接。
另一种方法是将pgpool2配置为在读/写和只读端点之间实现负载平衡。这样,您的应用程序就不必跟踪哪些调用是只读的,等等。
https://stackoverflow.com/questions/67083577
复制相似问题