Since all applications will be depending on HAProxy to connect to an available database node, one can have multiple HAProxy instances to avoid a single point of failure.
One possible setup is to install an HAProxy on each web server (or application server making requests on the database). This works fine if there are only a few web servers, so as the load introduced by the health checks is kept in check. The web server would connect to the local HAProxy (e.g. making a mysql connection on 127.0.0.1:3306), and can access all the database servers. The Web and HAProxy together forms a working unit, so the web server will not work if it's HAProxy is not available.
It is also possible to set up 2 HAProxy instances in Active-Passive mode (using Keepalived). Fail-over would then be automatic. At the moment of this writing, the HAProxy deploy script does not set this up automatically.
Please sign in to leave a comment.