首页 > 解决方案 > Redis active - 跨数据中心/Kubernetes 集群的主动复制

问题描述

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

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

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

有什么想法/建议吗?

在此先感谢,乔治

标签: rediskubernetesreplicationtwemproxyxdcr

解决方案


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

另一个建议是通过这样的设置来实现我们自己的:

数据中心1:

[多个 redis 客户端]===>[localProxy-DC1]====> TWEMPROXY-DC1 ===> [多个 Redis 单实例与 Sentinel]

数据中心-2:

[localProxy-DC1] ====replicates commands async===> TWEMPROXY-DC2 ====> [Multiple Redis Single Instances with Sentinel]


推荐阅读