如何在 JavaEE 应用程序中为 PostgreSQL 热备用设置配置连接故障转移?
我有两台安装了数据库的Linux服务器( 和 )。我按照文档中的说明配置了热备用模式。在此设置中,配置为主服务器,处于热备用模式。这运行良好,并且按预期运行。A
B
PostgreSQL 9.5
A
B
现在,我想通过/通过数据源将独立应用程序(在另一台计算机上运行)连接到此数据库设置。Java EE
Hibernate
JDBC
TomEE
PostgreSQL 驱动程序文档指出,可以在 jdbc 连接 url 中指定多个主机:
jdbc:postgresql://host1:port1,host2:port2/database
所以我的问题是:
- 如果 已关闭并手动切换到正常操作模式,我的应用程序是否仍能够使用上述 jdbc 连接 URL 继续数据库操作?
A
B
- 我必须配置其他参数/库吗?
注意:从我了解到的各种来源,不支持自动故障转移(除非该过程涉及第三方软件 - 请参阅下面的评论)。因此,故障转移需要手动执行,这对于此特定用例是可以的。PostgreSQL
编辑-1:
我决定测试(如评论中建议的那样)以获得解决方法。它适用于我的用例。我写了一个看门狗脚本,它自动化了手动步骤:pgBouncer
- 持续检查(如果仍处于活动状态)并侦听传入连接。
A
- 在故障转移的情况下,切换到正常操作模式,让它成为新的主服务器并重新启动服务。
B
- 将设置更改为指向而不是,然后重新启动服务。
pgBouncer
B
A
但是,我仍然会感兴趣,如果有人有没有第三方软件的经验?