这两天学习双机热备并且实际操作,但是没研究出来到底什么是比较适合的方案,网上搜出来的方案又太杂. 想请教一下到底哪个方案最好?目前使用的是 keepalived ,有更好的方案选择吗? 服务器上跑的服务中 mysql&redis 只有这两个需要使用 vip 做 ip 漂移!
如果特指 VIP ,它底层协议就是 VRRP ,无论是 F5 ,还是硬件路由器、防火墙,都用 VRRP ,所以本质功能没有区别。 linux 下实现 VRRP 的软件就是 keepalived 了。 但对于 Mysql 和 redis ,它双机热备恐怕并不*只*用 VIP 实现的吧?因为这两个服务都是有状态的。 比如两个 mysql 实例,你还得考虑数据同步和一致性的问题。如果想实现高可用,推荐你使用 mysql 的另外的发行版 Percona XtraDB Cluster. 而 Redis 也要部署为 replica 模式。
整个系统的高可用分多个层面,复杂度主要集中在业务数据层面,各种有状态集群、选主算法、同步算法等等,花活太多了。网络层面就简单多了,一个 VIP 大部分场景都够了,keepalived 简单好用,久经考验。