我在 Kubernetes 上部署了一个高可用的Redis服务(使用的 redis 版本是 4.0.9),具有 aof 持久性。三个哨兵节点监控一个主节点和两个从节点。我现在有以下用例:在不同的 Kubernetes 集群上部署两个上述类型的实例并保持它们同步。该设置应提供主动-主动复制。
到目前为止,我想出的可能解决方案是:
- 使用 Twitter 的twemproxy代理与 Kubernetes 中单独的 Redis 服务之间的请求。这种情况下的问题是 (afaik) twemproxy自动在可用的 Redis 节点/集群之间分片数据,因此上述配置中的主 Redis 节点在任何给定时间点都不会具有相同的数据集。
- 使用XDCRWithKafka。我还没有找到任何关于使用 XDCRWithKafka 的文档......
- 以几乎与使用 twemproxy 相同的方式使用HAProxy (同样,afaik,HAProxy 不支持请求多播)
- 一些自定义的 sln 描述在:http://grokbase.com/t/gg/redis-db/123nyg4rfp/multiple-master-going-to-one-slave(尽管保持 redis 集群与这样的解决方案同步处于活动状态时 - 活动状态似乎并不那么简单......)
有什么想法/建议吗?
在此先感谢,乔治