
【Redis】复制风暴
发布日期:2021-05-08 11:07:42
浏览次数:20
分类:精选文章
本文共 888 字,大约阅读时间需要 2 分钟。
文章目录
1. 复制风暴
复制风暴是指大量从节点对同一主节点或者对同一台机器的多个主节点短时间内发起全量复制的过程。复制风暴对发起复制的主节点或者机器造成大量开销,导致 CPU、内存、带宽消耗。因此我们应该分析出复制风暴发生的场景,提前采用合理的方式规避。规避方式有如下几个。
1.1 单节点复制风暴
当一个主机下面挂了很多个 slave从机的时候,主机 master 挂了,这时 master 主机重启后,因为 runid 发生了变化,所有的 slave 从机都要做一次全量复制。这将引起单节点和单机器的复制风暴,开销会非常大。
解决:
- 可以采用树状结构降低多个从节点对主节点的消耗。
- 从节点采用树状树非常有用,网络开销交给位于中间层的从节点,而不必消耗顶层的主节点。但是这种树状结构也带来了运维的复杂性,增加了手动和自动 处理故障转移的难度。
当也不一定
1.2 单机器复制风暴
由于 Redis 的单线程架构,通常单台机器会部署多个 Redis 实例。当一台机器(machine)上同时部署多个主节点(master)时,如果每个 master 主机只有一台 slave 从机,那么当机器宕机以后,会产生大量全量复制。这种情况是非常危险的情况,带宽马上会被占用,会导致不可用。
解决:
- 应该把主节点尽量分散在多台机器上,避免在单台机器上部署过多的主节点。
- 当主节点所在机器故障后提供故障转移机制,避免机器恢复后进行密集的全量复制。
如下图所示,左侧是单机器部署了多个master实例,右侧为分散部署:

1.3 总结
简单的区分单节点复制风暴和单机器复制风暴:
- 首先风暴的原因都是机器挂了,导致master节点重启后,大量的从节点发起同步数据的操作
- 不同点是二者的侧重点不同 单节点复制风暴是假设一个master下关联100从节点,而单机器复制风暴是指某个机器上有10个master,每个关联10个从节点,它们都是100个从节点,如果主机挂了,都会产生风暴。
- 单节点复制风暴:采用减少单个主节点关联的从节点
- 单机器复制风暴:采用分散机器部署,让鸡蛋不要放到一个篮子里
参考:
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月07日 02时53分11秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Hibernate入门(四)---------一级缓存
2021-05-09
MySQL事务(学习笔记)
2021-05-09
一个web前端开发者的日常唠叨
2021-05-09
内存分配-slab分配器
2021-05-09
技术写作技巧分享:我是如何从写作小白成长为多平台优秀作者的?
2021-05-09
Jupyter Notebook 暗色自定义主题
2021-05-09
[Python学习笔记]组织文件
2021-05-09
基于Redo Log和Undo Log的MySQL崩溃恢复流程
2021-05-09
从RocketMQ的Broker源码层面验证一下这两个点
2021-05-09
如何正确的在项目中接入微信JS-SDK
2021-05-09
纵览全局的框框——智慧搜索
2021-05-09
快服务流量之争:如何在快服务中占领一席之地
2021-05-09
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
2021-05-09
Unity平台 | 快速集成华为性能管理服务
2021-05-09
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
2021-05-09
使用Power BI构建数据仓库与BI方案
2021-05-09
Django认证系统并不鸡肋反而很重要
2021-05-09
快用Django REST framework写写API吧
2021-05-09
tep用户手册帮你从unittest过渡到pytest
2021-05-09
12张图打开JMeter体系结构全局视角
2021-05-09