PostgreSQL のドキュメントには、HA セットアップで使用するために JDBC 文字列で複数のホストを渡すことができることが示されています (ページの下部): https://jdbc.postgresql.org/documentation/head/connect.html
私のセットアップには、PostgreSQL サーバーが実行されている 3 つのノードがあります。pgpool-II を使用して HA を実装しました。マスター ノードと 2 つのスタンバイ ノードがあります。
次の休止状態のプロパティを使用すると、うまく機能します。
<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()));
3 つのノードすべてを含む元の JDBC 文字列が返されます。