Wordpress W3Total Cache и отказоустойчивость redis

Я пытаюсь создать веб-страницу Wordpress с Redis и HA, но моя проблема в том, что похоже, что W3 Total Cache не работает с отказоустойчивыми серверами Redis...

Моя конфигурация выглядит так:

+--------+ +--------+     +--------+
|        | |        |     |        |
| Web 1  | | Web 2  |     | Web N  |
|        | |        |     |        |
|        | |        | ... |        |
+----+---+ +---+----+     +---+----+
     |         |              |
     | +-------+   +----------+
     | |           |
  +--+-+---+       |    +--------+
  |Redis   +-------+    |Redis   |
  |Master  |            |Slave   |
  |        +------------+        |
  |Sentinel|            |Sentinel|
  +---+----+            +----+---+
      |                      |
      |      +--------+      |
      |      |        |      |
      |      |Sentinel|      |
      +------+        +------+
             |        |
             +--------+

Кажется, что Redis Sentinel работает нормально, и когда ведущий отсутствует, подчиненный начинает работать, но W3 Total Cache, похоже, не может управлять этой конфигурацией аварийного переключения, и тогда веб-страница перестает работать.

На изображении я связал только мастер, потому что это фактическая конфигурация, но во время тестов я настроил оба сервера на плагин Total Cache, и поведение было одинаковым: когда мастер выходит из строя, страница перестает работать. Если я изменю файл конфигурации, чтобы удалить мастер, тогда Total Cache начнет использовать подчиненный.

Как я могу заставить W3TC использовать ведомое устройство, когда ведущее устройство выходит из строя?

Спасибо и привет!!.


person Daniel Carrasco Marín    schedule 17.06.2017    source источник


Ответы (1)


Наконец, я настроил ведомое устройство как доступное для записи и использовал HAProxy для использования обоих серверов. Когда мастер выходит из строя, HAProxy обнаруживает это и затем использует только подчиненный.

person Daniel Carrasco Marín    schedule 21.06.2017
comment
Некоторое время спустя я нашел лучший способ, потому что вы можете использовать HaProxy, чтобы спросить Redis, является ли этот узел главным узлом, и пометить его как работающий, тогда трафик будет идти только к главному. Способ, который я опубликовал выше, работает, но есть некоторые проблемы, потому что данные, сохраненные в ведомом устройстве, не копируются в ведущее устройство. - person Daniel Carrasco Marín; 21.04.2019