MySQL 主从复制配上 LVS 和 Keepalived,搞个高可用读写分离方案,其实没你想的那么复杂。这套组合挺经典的,适合那种数据库压力比较大的场景,比如读多写少的业务模型,或者对稳定性要求高的线上系统。主机 A 写入、主机 B 只读,再加两个 VIP 搞读写分离,效率也提上去了。

MySQL 的主从复制用得最多的还是为了数据备份和读写分担。主库写数据后,把操作记录进binlog,从库连上来拉这些日志,一条条地重放,就跟看录像一样把数据给同步过来了,操作也还算好上手。

LVS 的负载均衡也挺稳的,搭配ipvsadm工具做配置管理。你可以设两个 VIP,一个专管写求(W-VIP),一个专门读(R-VIP)。写的全进主库,读的就看你怎么设,主从都能分摊,调度策略用的wrr(加权轮询)比较灵活。

Keepalived就相当于守门员了,主机挂了它立马切换 VIP,保障不中断。配置文件在/etc/keepalived/keepalived.conf,可以设定健康检查,比如盯着 MySQL 端口,一断就漂移 VIP。

这几样搭配下来,读写分离、负载均衡、高可用都搞定了。你只要写好配置,日常维护也不难。想省事的话,W-VIP 和 R-VIP 设成固定 IP,在应用层做点逻辑就行。

如果你平时也在折腾 MySQL 高可用,不妨参考下这套方案,蛮成熟的,踩坑少,社区资源也多。顺带给你几个相关文章,扩展一下思路: