Setup
配置容灾集群涉及两部分:为 Redis 实例启用容灾配置,以及建立目标实例与源实例之间的连接。
Cluster Role Description
在容灾集群中,每个 Redis 实例的角色不是固定的;它可以是源端也可以是目标端。目标端不限制数据写入,但写入目标端的数据会被从源端同步过来的数据覆盖,或者因数据类型冲突导致同步失败。
Source side
您需要先创建一个 Redis 实例。
Enable Disaster Recovery
使用 LoadBalancer 作为源 Proxy 的访问地址
为实例启用容灾支持后,容灾 Proxy 默认提供一个基于 NodePort 的访问地址。单一 NodePort 访问地址的高可用性较低。在生产环境中,可以使用 LoadBalancer 地址为 Proxy 提供访问。
每个容灾实例会创建一个 Proxy Service,名称格式为:activeredis-proxy-<instance-name>。
Sentinel 实例的实例名需加前缀
rfr-
Target side
Enable Disaster Recovery
WARNING
serviceID 的范围为 [0-15]。同一容灾集群中,serviceID 不能重复。
创建包含源端 default 用户密码的 secret
配置容灾连接
注意替换源端地址和 secret。
检查容灾连接状态
其中 status.shards[0].status 表示分片的连接状态,status.shards[0].syncStatus 表示数据同步状态。同步状态可以是 PartialSync(表示增量同步 Oplog)或 FullSync(表示正在同步 RDB)。
原生 Redis 哨兵模式没有分片的概念,这里将 Sentinel 的主从抽象为
shard 0,以兼容与 Redis 集群模式相同的数据结构。