知识卡片
主从复制与主备的本质区别:从机要真正"干活"
内容
[[存储高可用的四个分析维度,及主备复制的简单与代价]]里的”备”取”备份”之意,主从复制的”从”则取”随从、仆从”之意——仆从是要真正帮主人干活的,这个”活”就是承担”读”操作:主机负责读写,从机只负责读、不负责写,架构上和主备复制的核心差异就是从机在正常情况下也要真正对外提供读服务,而不是像备机那样只是躺着做冗余。这带来的优点是:主机一旦故障,读操作相关的业务依然能继续运行(因为从机本来就在承担读流量);从机不再是闲置资源,硬件性能被真正利用了起来。代价则是:客户端不能再像面对主备复制那样”无感知”,必须自己区分主从关系、把不同类型的操作发到不同的机器上,复杂度比主备复制明显更高;从机既然承担读业务,一旦主从复制延迟较大,就会出现[[主从复制延迟带来的业务问题及三种应对方案]]里描述的那种”读到旧数据”的问题;而且故障恢复同样需要人工干预,没有解决主备复制”无法自动恢复”这个短板。综合来看,主从复制比较适合读多写少的业务——像论坛、BBS、新闻网站这类场景,读操作的数量往往是写操作的十倍甚至上百倍,让从机分担这部分海量读流量的收益会非常明显。
参考来源
- 位置:《从零开始学架构》第25讲《高可用存储架构:双机架构》"主从复制"(源文件:_epub-src/OEBPS/text00002.html)
- 结论依据:原文说明"'从'意思是'随从、仆从'……仆从是要帮主人干活的,这里的干活就是承担'读'的操作……主机负责读写操作,从机只负责读操作",并列出优点"主机故障时,读操作相关的业务可以继续运行……发挥了硬件的性能"和缺点"客户端需要感知主从关系……如果主从复制延迟比较大,业务会因为数据不一致出现问题……故障时需要人工干预",最后指出"写少读多的业务使用主从复制的存储架构比较多……读操作数量是写操作数量的 10 倍甚至 100 倍以上",直接支撑本卡片结论。
- 原始内容:主机负责读写操作,从机只负责读操作,不负责写操作……主从复制在主机故障时,读操作相关的业务可以继续运行……写少读多的业务使用主从复制的存储架构比较多。