PostgreSQL + haproxy with multiple IP

April 19, 2016 706 views
High Availability PostgreSQL Debian

I have setup a postgresql cluster (with one master node and one slave/standby node) using Patroni. I want to use HA proxy in front of my cluster.
I think in this case HA proxy itself could be a single point of failure.
So to avoid this problem if I use multiple nodes for the HA proxy. Then not sure how client will handle the connection in case of failure of IP of HA proxy to which client is corrently connected.
( Or we can say how client/client_app will switch over between different available IP's of HA proxy).

1 Answer

In order for HAProxy to not be a single point of failure, you could use a Floating IP. With the help of keepalived, you can configure a set up where the IP address will automatically failover from one HAProxy server to the other. Check out this tutorial for an in depth walk through:

While that article has web servers behind the HAProxy instances instead of Postgres, there shouldn't be any difference in the configuration for keepalived.

A DigitalOcean Floating IP is a publicly-accessible static IP address that can be mapped to one of your Droplets. A Floating IP can also be instantly remapped, via the DigitalOcean Control Panel or API, to one of your other Droplets in the same datacenter. This instant remapping capability grants you the ability to design and create High Availability (HA) server infrastructures by adding redundancy to the entry point, or gateway, to your servers.
Have another answer? Share your knowledge.