Redis活动-跨数据中心/ Kubernetes群集的活动复制

时间:2018-06-28 10:53:00

标签: redis kubernetes replication twemproxy xdcr

我已经在aof持久性的Kubernetes上部署了高可用性的Redis服务(使用的Redis版本是4.0.9)。三个标记节点监视一个主节点和两个从属节点。 我现在有以下用例: 在单独的Kubernetes群集上部署上述类型的两个实例,并使它们保持同步。该设置应提供主动-主动复制。

到目前为止,我可能提出的解决方案是:

  1. 使用Twitter的twemproxy代理与Kubernetes中单独的Redis服务之间的请求代理。这种情况下的问题是(afaik)twemproxy自动在可用Redis节点/群集上分片数据,因此上述配置中的主Redis节点在任何给定时间点都不会具有相同的数据集。
  2. 使用XDCRWithKafka。我还没有找到有关XDCRWithKafka的使用的任何文档...
  3. 使用HAProxy的方式与使用twemproxy几乎相同(同样,afaik,HAProxy不支持请求多播)
  4. http://grokbase.com/t/gg/redis-db/123nyg4rfp/multiple-master-going-to-one-slave中描述的某种自定义sln(尽管在活动状态下使redis集群与这种解决方案保持同步-活动状态似乎并不那么简单...)

有什么想法/建议吗?

预先感谢, 乔治

1 个答案:

答案 0 :(得分:0)

据我所知,只有炸药似乎可以解决这个问题。 https://github.com/Netflix/dynomite/wiki/Topology

另外一个建议是通过进行如下设置来实现我们自己的功能:

DataCenter1:

[多个redis客户端] ===> [localProxy-DC1] ====> TWEMPROXY-DC1 ===> [带有哨兵的多个Redis单个实例]

DataCenter-2:

[localProxy-DC1] ====复制命令async ===> TWEMPROXY-DC2 ====> [带有前哨的多个Redis单个实例]