0

PostgreSQL 文档显示您可以在 JDBC 字符串中传递多个主机以用于 HA 设置(页面底部):https ://jdbc.postgresql.org/documentation/head/connect.html

我的设置有 3 个节点,每个节点都运行 PostgreSQL 服务器。我已经使用 pgpool-II 实现了 HA。有一个主节点和两个备用节点。

当我使用以下休眠属性时,效果很好:

<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 字符串。

4

0 回答 0