Devi stare attento con questo tipo di sistema distribuito. Ad esempio: immagina di avere un server di attivazione a Londra e un altro a New York. Se una Deep One taglia il cavo tra di loro, Londra penserà che "NY è andato giù, devo prendere il sopravvento", e NY penserà che "Londra è finita, devo subentrare" ... e la tua applicazione verrà attivata due volte. Ciò significa che devi avere almeno 3 server in modo che uno possa agire da monitor per gli altri per arbitrare se sono disconnessi l'uno dall'altro o davvero giù.
Spesso in tali situazioni, uno funge da master e l'altro è in standby, quindi solo uno è effettivamente in esecuzione in qualsiasi momento. Quando lo standby rileva che il master non risponde più (ad esempio agli heartbeat), diventa il master e prende il sopravvento.
Questo suppone che l'applicazione da attivare sia distribuita in modo simile - nessuna buona Londra sta tentando di eseguire un'app sul server NY se il server NY ha fallito.
Naturalmente, suppone anche che il tuo DB sia accessibile da entrambi i server, il mancato contatto con il DB fa sì che il server master attualmente in esecuzione si consideri disconnesso e cada intenzionalmente, e ciò significa che anche il tuo DB deve essere resiliente (o potresti inoltre esegui il server di attivazione sul server DB stesso.
I sistemi completamente tolleranti ai guasti e distribuiti non sono semplici da ottenere. Puoi ottenere l'80% del servizio richiesto abbastanza facilmente, mentre l'altro 20% è davvero difficile. ZeroMQ ha una buona documentazione architettonica riguardante la topologia della rete che è molto buona da leggere e ti aiuterà a capire quale tipo di errore tolleranza che potresti desiderare.
Dato che, forse tutto ciò di cui hai veramente bisogno è uno script perl servito da localhost che venga eseguito regolarmente e che ricordi l'ultima volta che è stato eseguito. Per quanto tempo puoi tollerare tra il momento in cui qualcosa dovrebbe essere eseguito e quando lo fa? Se quel tempo è maggiore del tempo di riavvio di un server, c'è la tua soluzione semplice ma efficace. Se hai bisogno di risposte assolute di secondo-secondo con disponibilità del 99,999% - beh, diciamo che l'autore di ZeroMQ probabilmente ha ancora un grande buco dietro la sua casa che potrebbe ancora essere trasformato in una piscina executive.