Thread: Re: Advice on cluster architecture for two related, but distinct, use cases

Re: Advice on cluster architecture for two related, but distinct, use cases

From
Greg Sabino Mullane
Date:
Some of those requirements are vague, but yes, Patroni should probably be the first approach you look at. If the second datacenter is just for redundancy, then a simple setup would be:

DCA (data center A):
Postgres server 1
Postgres server 2

DCB:
Postgres server 3 (set no_failover: true)

You will also need a DCS system of some sort (e.g. etcd on all three nodes), as well as a backup system (e.g. pgBackRest). Will also need to decide how automated you want things to be (for example, cross datacenter failover in the above would be manually done). It should definitely be able to handle your RPO/RTO requirements easily enough.

[Patroni] However it seems relatively complex to set up and operate

Setting things up can be a little complex, yes, but once done it just works, so very little operation resources are needed. 

We can not assume eg a load balancer.

Possible via the application: see https://www.postgresql.org/docs/current/libpq-connect.html (esp. target_session_attrs)

Cheers,
Greg

Re: Advice on cluster architecture for two related, but distinct, use cases

From
"sunyucong@gmail.com"
Date:
CC

On Mon, Nov 11, 2024 at 09:28 Greg Sabino Mullane <htamfids@gmail.com> wrote:
Some of those requirements are vague, but yes, Patroni should probably be the first approach you look at. If the second datacenter is just for redundancy, then a simple setup would be:

DCA (data center A):
Postgres server 1
Postgres server 2

DCB:
Postgres server 3 (set no_failover: true)

You will also need a DCS system of some sort (e.g. etcd on all three nodes), as well as a backup system (e.g. pgBackRest). Will also need to decide how automated you want things to be (for example, cross datacenter failover in the above would be manually done). It should definitely be able to handle your RPO/RTO requirements easily enough.

[Patroni] However it seems relatively complex to set up and operate

Setting things up can be a little complex, yes, but once done it just works, so very little operation resources are needed. 

We can not assume eg a load balancer.

Possible via the application: see https://www.postgresql.org/docs/current/libpq-connect.html (esp. target_session_attrs)

Cheers,
Greg