当前位置: 首页 > 科技观察

Undermoon-一个基于Redis集群协议的自我管理的Redis集群系统

时间:2023-03-16 23:18:49 科技观察

Undermoon是一个基于Redis集群协议的自我管理的Redis集群系统,支持:水平可扩展性和高可用性通过HTTPAPI的集群管理master自动故障和replica任何实现了redis协议的存储系统也可以通过某种方式与undermoon协同工作,比如KeyDB。https://github.com/JohnSully/KeyDB关于RedisClusterProtocol更深入的解释以及Undermoon是如何实现的,请参考RedisClusterProtocol。https://github.com/doyoubi/undermoon/blob/master/docs/redis_cluster_protocol.mdArchitectureMetadataStorage(元数据存储)元数据存储存储了整个undermoon集群的所有元数据,包括现有的Redis实例、代理和ExposedRedis集群。现在它是一个名为MemoryBroker的内存存储服务器。当使用undermoon-operator时,MemoryBroker将改为使用ConfigMap来存储数据。协调器(coordinator)Coordinator会在代理和服务器代理之间同步元数据。它还会主动检查服务器代理的活跃度并启动故障转移。StorageCluster(存储集群)StorageCluster由服务器代理和Redis实例组成。它像官方的Redis集群一样为应用程序提供服务。可以在它和应用程序之间添加一个RedisClusterProxy,这样应用程序就不需要将它的Redis客户端升级为智能客户端。Chunk(块)Chunk是每个暴露的Redis集群的最小构建块。每个块由4个Redis实例和2个服务器代理组成,均匀分布在两台不同的物理机上。所以每个Redis集群中的节点数会是4的倍数,一半master一半replica。块旨在使构建具有良好拓扑结构的集群以实现工作负载平衡变得非常容易。