Наиболее распространенный подход к достижению балансировки нагрузки и отказоустойчивости состоит в том, чтобы иметь главный сервер и хотя бы один или несколько подчиненных серверов.
в вашем приложении у вас есть соединение только для записи, в которой всегда используется мастер, а для чтения используется один из рабов. (это может быть автоматически загружено, например, с помощью heartbeat и ldirectord.
Теперь вашей единственной точкой отказа будет главный сервер, для которого вы должны иметь горячее резервирование. (DRBD и сердцебиение - хорошая команда для таких нужд)