postgresql - 用于 rds postgres 高可用性的 pgpool
问题描述
RDS Aurora for PostgreSQL 集群有一个写入器和 2 个读取器节点。当存在大量写入活动并且读取器节点滞后于这些更改时,aurora 会停止读取器节点——赶上更新并启动实例。这样做是为了避免过时的读取。
但这会导致在阅读器重新启动时连接到阅读器的应用程序失败,我可以在这种情况下使用 pgpool 或任何其他工具来监视阅读器,并且当它们未启动时,将读取转发给写入器?想要避免应用程序失败,请告知如何最好地解决这个问题。
解决方案
听起来您可能直接连接到阅读器节点。您需要使用集群的读取器端点进行连接。
如果您选择集群,在“连接性和安全性”选项卡下,您将找到一个包含两个“端点”的表。一个用于只读,另一个用于写入实例。将您的应用程序指向这些,它们将别名为写入器节点,并在读取器节点之间进行负载平衡。当然,我假设您的应用程序正在将只读调用汇集到一个数据库连接并将读/写到另一个数据库连接。
另一种方法是配置 pgpool2 以在您的读/写和只读端点之间进行负载平衡。这样,您的应用程序就不必跟踪哪些调用是只读的等等。
推荐阅读
- html - 如何修复我所有的页脚链接不被混淆?
- gf - GF 中的关系从句 (which)
- typescript - 如何在 fp-ts 中使用管道删除 if 语句
- xml - 如何使用 eXist-db 将结果“拼接”成单个 XML 文档?
- c# - 虽然 String 是一种引用类型,但为什么“==”运算符在 2 个字符串中表现正确?
- reactjs - 由于 CORS,Spring 和 React websocket 聊天无法正常工作
- java - 错误需要权限 android.permission.CONNECTIVITY_INTERNAL android.permission.MAINLINE_NETWORK_STACK
- neo4j - 查询 Neo4j 的许多日期范围
- android - 在连续中断之前获取最后一个数组列表位置
- java - ZuulProxy 在 Spring Boot 应用程序中不起作用