PostgreSQL文档显示您可以在JDBC字符串中传递多个主机以用于HA设置(页面底部):https://jdbc.postgresql.org/documentation/head/connect.html
我的设置有3个节点,每个节点都运行PostgreSQL服务器。我使用pgpool-II实现了HA。有一个主节点和两个备用数据库。
当我使用以下hibernate属性时,它很有效:
<property name="hibernate.connection.url">jdbc:postgresql://10.200.0.50:5432,10.200.0.51:5432,10.200.52:5432/replicationtest</property>
我的应用程序连接到群集,如果说10.200.0.50已关闭,它将使用其他地址之一。
但我的问题是,使用后:
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session s = sf.openSession();
如何检查我的会话与之建立连接的JDBC连接字符串中的哪个主机?
代码:
s.doWork(connection -> System.out.println(connection.getMetaData().getURL()));
给我一个包含所有三个节点的原始JDBC字符串。