マスターと1つのスレーブのみを含むレプリケートされたRedisを実行しています。私の目標は、マスターがダウンしたときにスレーブがマスターになるが、さらに古いマスターが回復したときに昇格するレプリケーションを実装することです(Redisセンチネルを使用)。
初期設定は簡単です。マスターと同じサーバーで1つのセンチネルを使用し、スレーブでサーバーで2つのセンチネルを使用しています。クォーラムが2の場合、スレーブサーバー上の2つのセンチネルは、マスターが使用できないときにスレーブをマスターに昇格させます。古いマスターが戻ってくると、古いスレーブ(マスターに昇格した)に再接続し、そのスレーブになります。
その後、通常通り営業。スレーブ(旧マスター)を元のレイアウトの状態でマスターするようにプロモートしたい場合を除きます。これはredis-cliを使用して手動で実行できます(したがって、cronを使用して実行できます)が、センチネル構成またはbrute cronjob以外の方法で実行する方法はありますか?私の意図は基本的に、元のマスターが再び使用可能になるとマスターステータスを返すスレーブによってバックアップされる静的マスターを持つことです。
現在、目的のマスターにフェイルバックするメカニズムはありません。 slave-priority
マスターがダウンしているときにスレーブが選択するものに影響を与える可能性がありますが、現在のマスターが正常なときにセンチネルがフェイルバックを開始することはありません。これを自動的に行うには、センチネルの外部に実装する必要があります。
マスター選挙を自動的に処理するには、次の解決策を試してみてください。