У меня есть 3 настройки Redis Sentinel:
CLIENT (connects to S1)
|
↓
+----+
| M1 | us-east-1
| S1 |
+----+
|
+----+ | +----+
| R2 |----+----| R3 |
| S2 | | S3 |
+----+ +----+
us-east-2 us-west-2
M1 - Master
S1 - Sentinel 1
S2 - Sentinel 2
S3 - Sentinel 3
R2 - First slave (R=replica)
R3 - Second slave
После того, как мой мастер умер, дозорный сделал отработку отказа на R2. Я вернул M1 в онлайн (очистил место на диске), и теперь M1 жив и здоров, но является рабом R2. Есть ли автоматический (или полуавтоматический) способ снова сделать M1 главным, а R2 — подчиненным для M1, а мой трафик снова использовать M1 в качестве главного экземпляра Redis?
По сути, я хочу вернуться к тому, как это было до аварийного переключения.
В настоящее время происходит то, что он выбирает R2 в качестве мастера и перенастраивает его так, чтобы он был:
CLIENT (connects to S1)
|
↓
+----+
|[R2]| us-east-2
| S2 |
+----+
|
+----+ | +----+
|[M1]|----+----| R3 |
| S1 | | S3 |
+----+ +----+
us-east-1 us-west-2
Когда я переключаюсь вручную, он продвигает R3 как ведущий. (что вполне ожидаемо).
Но затем, когда я снова переключаюсь вручную, он продвигает R2, но я ожидаю, что он продвинет M1.
Все последовательные отработки отказа чередуются между R2 и R2 (при этом M1 всегда остается подчиненным для любого из них).
Приоритет моего подчиненного устройства M1 не указан, поэтому это означает, что его значение по умолчанию равно 100. Приоритет моего подчиненного устройства R2 равен 200, а R2 равен 300. Это заставляет меня думать, что он должен вращать все 3 поля, но он вращает только R2 и R3. после первоначального аварийного переключения.
Мне это кажется сторожевым жуком