PostgreSQL + haproxy with multiple IP

April 19, 2016 6.5k views
Debian PostgreSQL High Availability

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).

2 Answers

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.

by Melissa Anderson
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.

Could we use the DigitalOcean Load Balancer instead of HAProxy?

Have another answer? Share your knowledge.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!