postgresql postgres jdbc驱动程序故障转移问题

ejk8hzay  于 12个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(223)

我有2个数据库示例,1个主node1 1个读副本node2
我有2个应用程序。一个用于写app1一个用于阅读app2
下面是app1jdbc:postgresql://node1,node2/db?targetServerType=primary的连接字符串。
下面是app2jdbc:postgresql://node1,node2/db?targetServerType=preferSecondary的连接字符串。
node1失败,node2升级到master时,app1中的jdbc驱动程序是否会自动连接到node2进行写入?app2中的jdbc驱动程序是否会开始检查是否存在读副本,如果存在,是否会切换流量(当node1启动时)?

ndh0cuux

ndh0cuux1#

连接到失败的主服务器的客户端将在尝试重新连接时连接到升级的备用服务器。(但您必须编写应用程序,以便它尝试重新连接。)
当备用服务器升级时,连接到备用服务器的客户端将保持连接。它不会切换到新的备用服务器,除非您在应用程序中故意这样做。要测试是否连接到备用服务器,可以运行

SELECT pg_is_in_recovery();

字符串
这将返回备用的TRUE

相关问题