Redis active - активная репликация через центры обработки данных / кластеры Kubernetes

Я развернул высокодоступную службу Redis в Kubernetes (используемая версия red is 4.0.9) с постоянством. Три сторожевых узла контролируют один главный узел и два подчиненных узла. Теперь у меня есть следующий вариант использования: Развернуть два экземпляра описанного выше типа на отдельных кластерах Kubernetes и синхронизировать их. Установка должна обеспечивать активную активную репликацию.

Возможные решения, которые я нашел до сих пор:

  1. используя твитпрокси Twitter для прокси-запросов к и от отдельных сервисов Redis в Kubernetes. Проблема в этом случае заключается в том, что (afaik) twemproxy автоматически разделяет данные между доступными узлами / кластерами Redis, поэтому главные узлы Redis в конфигурации, описанной выше, не будут иметь одинаковые наборы данных в любой данный момент времени.
  2. Использование XDCRWithKafka. Мне не удалось найти какую-либо документацию по использованию XDCRWithKafka...
  3. Использование HAProxy почти таким же образом, как и twemproxy (опять же, afaik,HAProxy не поддерживает многоадресную рассылку запросов)
  4. Некоторые пользовательские sln, описанные в: http://grokbase.com/t/gg/redis-db/123nyg4rfp/multiple-master-going-to-one-slave (хотя синхронизация кластеров redis с таким решением выполняется синхронно в то время как в активном - активное состояние, кажется, не так просто...)

Есть идеи / предложения?

Заранее спасибо Джордж

0 ответов

Насколько я видел, только Dynomite, кажется, решает эту проблему. https://github.com/Netflix/dynomite/wiki/Topology

Еще одно предложение состоит в том, чтобы реализовать нашу собственную настройку примерно так:

DataCenter1:

[несколько клиентов Redis]===>[localProxy-DC1]====> TWEMPROXY-DC1 ===> [Несколько экземпляров Redis с Sentinel]

DataCenter-2:

[localProxy-DC1] ==== реплицирует команды async===> TWEMPROXY-DC2 ====> [Несколько экземпляров Redis Single с Sentinel]

Другие вопросы по тегам