是否可以部署一个自我修复和扩展的类似Redis的键值存储,我可以在Kubernetes(或Swarm或任何其他自动云环境)中运行?
我在Redis中遇到的挑战:
redis-trib
以上意味着以下方案都将失败。我有一个简单的3主机和3从机集群。 "大师A"失败,导致Kubernetes开始一个新的"大师A"在< 1秒内:
问题:
Consul / etcd / zookeeper所有工作都是100%点对点和自我修复(这很棒),但他们的表现(据称)远低于Redis内存中的KV。它们没有被构建,例如用于查找每个Web API请求的会话。这部分是由于非分片(100%拷贝),部分原因是磁盘写入。
Kafka的模型(虽然消息队列,而不是KV商店)也运行良好(但取决于下面的zk):分区和副本,但基本上是自我修复。我和一个经纪人交谈,它告诉我我的主题(" shard")在哪里生活,我明白了。
有没有办法可以使用Redis获得完全自主权,这样我就可以部署在kube / swarm / cloud中,或者提供与自主模型类似性能的替代方案?
答案 0 :(得分:2)
您可以使用与Redis Sentinel配合使用的Kubernetes Redis示例。如果主设备发生故障,哨兵会将从设备提升为新主设备。 Replication Controller引导新的Slave Pod。您的应用程序连接到sentinel,从该服务您将获得新主服务器的IP。
Redis Sentinel https://redis.io/topics/sentinel
Kubernetes示例https://github.com/kubernetes/examples/tree/master/staging/storage/redis