Ubuntu で実行されています。プログラムは C++ です。1 つがマスターで、もう 1 つがスレーブの場合、異なるホストで 2 つのプロセスを実行しています (それらの間に優先順位はありません。1 つのみが要求を処理します)。1 つのプロセスのみがマスターになり、要求を処理できます。2 つのプロセスは常に起動しており、クラッシュした場合に備えて、それらを再起動するウォッチドッグがあります。
ホストはネットワーク ケーブルで接続されています。
私の計画は、あるものから別のものへのキープアライブを要求することです。スレーブがマスターからのキープアライブを停止した場合、その状態をマスターに変更する必要があります。マスターが再起動すると、最初にキープアライブを待機し、取得できない場合にマスターとしての役割を設定します。取得した場合は、役割をスレーブとして設定します。
以下についてご意見をお聞かせいただければ幸いです。
両方が同時にマスターになるのを防ぐ方法は? これは私の主な関心事です。起動時と接続障害時に、同時に 2 つのマスターを防止するにはどうすればよいですか?
キープアライブを問い合わせるか、キープアライブを送信した方が良いと思いますか? (私の意見では、プッシュするよりもキープアライブを要求する方が良い)
他の良いアドバイスや落とし穴は大歓迎です。