slave攻略:常见方案问答
slave攻略不能只讲配置命令,更要回答什么时候该用、和只读实例及高可用方案相比差在哪里。本文用问答方式横向对比自建从库、云只读实例、standby和多主方案的优劣,帮助你少走弯路。
Q1:slave、自建replica和云只读实例怎么选?
如果团队有DBA或后端能长期维护,自建replica成本可控、参数灵活,适合对内核配置有要求的系统。若团队小、上线压力大,云只读实例更适合作为slave攻略里的首选,因为它把复制、监控、扩容、告警做成了标准能力。缺点是成本不一定最低,且云厂商限制较多。
Q2:slave和缓存相比,谁更适合抗读流量?
从库适合承接需要较新数据的复杂查询,例如订单列表、后台筛选、报表初算;缓存适合热点、重复、容忍短暂不一致的数据,例如商品详情、首页配置。两者不是替代关系。slave攻略里常见错误是只加从库不做缓存,结果热门接口仍反复查数据库;或只做缓存,遇到条件查询仍拖慢主库。
Q3:slave和高可用集群有什么差别?
slave更多解决复制与读扩展,高可用解决故障自动接管。一个只读从库可能无法直接接替主库写入,因为权限、复制位点、应用连接、数据一致性都要处理。和MGR、Patroni、Aurora类方案相比,传统slave结构简单、成本低,但自动化和一致性保障弱。选择时要看RTO和RPO,而不是只看节点数量。
Q4:多主是不是比slave更高级?
多主并不天然更好。它能提升写入可用性,但会带来冲突检测、事务顺序、跨地域延迟等复杂问题。对多数中小业务,单主多replica更容易排错,也更符合运维经验。只有在明确需要多地写入、并能接受冲突治理成本时,多主才值得进入候选。
Q5:最终攻略怎么落地?
先量化读写比例、峰值QPS、可接受延迟和故障恢复时间;再选方案。读多写少选只读replica,怕停机加standby,需要热点加缓存,跨地域再讨论多活。真正可靠的slave攻略不是堆组件,而是把每个组件的职责边界画清楚。
常见问题
slave攻略里最先要看哪个指标?
先看复制延迟和读写比例。读压力不高时加从库收益有限;延迟不可控时,把关键查询放到从库会产生业务错误。
slave从库适合跑大报表吗?
可以,但要限流、错峰,并尽量使用独立报表库。超大查询会造成IO压力,进一步放大复制延迟。
云只读实例比自建slave安全吗?
通常运维风险更低,但不是绝对安全。仍要配置权限隔离、备份策略、慢查询监控和跨可用区容灾。