Ponieważ zapisuje się na dysk przez binlog, myślę, że możesz zrobić coś podobnego do tego, co zwykle robią administratorzy MySQL: bicie serca z DRBD ( przykład tutaj).
Ostatnim razem, gdy próbowałem użyć pulsu, nie obsługiwał on sprawdzania non-multicast między węzłami, co oznacza, że było mniej lub bardziej niemożliwe do uruchomienia w infrastrukturze chmury / VPS (AWS, Linode, Slicehost itp.). W rzeczywistości większość usług klastrowych korzysta z multiemisji. Być może już tak nie jest, ale należy o tym pamiętać. Być może będziesz mógł użyć keepalived do zapewnienia pracy awaryjnej opartej na IP, która obsługuje także tylko multiemisję, ALE ma łatkę dostępną za pośrednictwem Willy Tarreau (autor HAProxy ), aby dodać obsługę emisji pojedynczej . Osobiście przetestowałem to na parze serwerów VPS Linode i keepalived jest w stanie przełączyć się na udostępniony adres IP w przypadku awarii serwera głównego.
Jedną z rzeczy, które możesz zrobić, która jest prawdopodobnie mniej optymalna, jest zapisywanie zadań na wielu serwerach beanstalkd (inaczej partycjonowanie). Jeśli jeden z nich ulegnie awarii, poproś aplikację o wykrycie tego i napisz do innych instancji. Twoi pracownicy będą musieli inteligentnie sondować każdą instancję łodygi fasoli i będą mogli ignorować martwe instancje. Ponieważ binlogowanie, przywracanie instancji powinno być tak proste, jak ponowne uruchomienie, aplikacja / pracownicy wykryją to i będą kontynuować jak zwykle (i zaczną przetwarzać zadania w nowo uruchomionej instancji). Oczywiście upraszczam ten proces, ale jest to jeszcze jeden sposób, aby sobie z tym poradzić.