public inbox for [email protected]
help / color / mirror / Atom feedFrom: Nikolay Prokofiev <[email protected]>
To: [email protected]
Subject: Pg jdbc DNS failover
Date: Tue, 21 Nov 2023 12:07:30 +0300
Message-ID: <CABwh0FDqOiHh2Y_Qqq8iTOLoKDwxZrgia97wZnWk0n1M_6cJvg@mail.gmail.com> (raw)
Hi. According to pgjdbc documantation
<https://jdbc.postgresql.org/documentation/use/#connection-fail-over;, the
driver supports failover when ip addresses and ports of host are comma
separated, like this:
jdbc:postgresql://my-db-host-slave-1:5432,my-db-host-master-1:5432/database?targetServerType=primary
.
But it's not convenient, because we use k8s for pg, and there may be more
slaves added and master ip may be changed.
I want to store all my hosts in DNS and to specify one hostname like this:
jdbc:postgresql://my-db-host.local:5432/database?targetServerType=primary
I have a dns record with 2 ip addresses:
$ nslookup my-db-host.local
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name: my-db-host-slave-1
Address: 192.168.10.21
Name: my-db-host-master-1
Address: 192.168.11.25
and I tried to specify it like this:
jdbc:postgresql://my-db-host.local:5432/database?targetServerType=primary.
But this way it only picks the first ip - slave and fails with
org.postgresql.util.PSQLException:
Could not find a server with specified targetServerType: primary
Is there any workaround for using dns failover? May be some options in
connection pools if driver does not support that?
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: Pg jdbc DNS failover
In-Reply-To: <CABwh0FDqOiHh2Y_Qqq8iTOLoKDwxZrgia97wZnWk0n1M_6cJvg@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox