我有2个数据库示例,1个主node1
1个读副本node2
。
我有2个应用程序。一个用于写app1
一个用于阅读app2
下面是app1
jdbc:postgresql://node1,node2/db?targetServerType=primary
的连接字符串。
下面是app2
jdbc:postgresql://node1,node2/db?targetServerType=preferSecondary
的连接字符串。
当node1
失败,node2
升级到master时,app1
中的jdbc驱动程序是否会自动连接到node2
进行写入?app2
中的jdbc驱动程序是否会开始检查是否存在读副本,如果存在,是否会切换流量(当node1
启动时)?
1条答案
按热度按时间ndh0cuux1#
连接到失败的主服务器的客户端将在尝试重新连接时连接到升级的备用服务器。(但您必须编写应用程序,以便它尝试重新连接。)
当备用服务器升级时,连接到备用服务器的客户端将保持连接。它不会切换到新的备用服务器,除非您在应用程序中故意这样做。要测试是否连接到备用服务器,可以运行
字符串
这将返回备用的
TRUE
。