ElastiCache Redis集群模式复制逻辑及副本CPU差异咨询
ElastiCache Redis主从复制逻辑及CPU差异原因说明
底层复制逻辑说明
你猜测的「仅一个replica主动复制、另一个仅故障时启用」的机制并不存在。开启集群模式的ElastiCache Redis,所有绑定到同一master的replica节点都会同时执行全量+增量数据同步:
- 所有replica节点启动后会主动向master发起
PSYNC请求,先完成全量RDB文件同步,之后持续接收master的写入命令流并本地回放,全程保持和master的数据一致,没有「主/备replica」的分层设计。 - 仅做数据同步的replica节点本身CPU开销极低,只会在回放写入命令时产生少量计算负载。
两个replica CPU使用率差异的核心原因
该差异和业务读请求的路由分布直接相关:
- 你通过Configuration Endpoint连接集群时,ElastiCache默认会将读请求按负载均衡策略分发到master和所有replica节点。如果读请求出现分布倾斜,就会出现单个replica承接了绝大多数读请求,CPU使用率和承担写请求的master接近;另一个replica仅做数据同步、无业务读请求,CPU始终处于低位。
排查验证方法
- 分别连接两个replica节点,执行
INFO STATS命令查看QPS指标,确认两个节点的业务请求量差异 - 执行
CLIENT LIST统计两个replica上的业务客户端连接数,确认是否有业务侧单独指定了单个replica的端点承接读流量 - 检查ElastiCache控制台的读路由权重配置,确认是否手动设置了不均匀的读请求分发权重

内容的提问来源于stack exchange,提问作者rrrocky
相关产品推荐
相关产品推荐

