最近公司要做主备数据库备份和自动切换,先简单的了解了一下这三者的区别。
要做一个主库宕机之后自动切换备库的功能,但是上网搜索了一下发现有三个中间件都可以解决这个问题。
所以就来说一下这三个的业务场景和区别,以及哪一个更加轻量级
Keepalived
用途: 主要用于 IP 级别的高可用性和故障转移。
特点:
实现了 VRRP(虚拟路由冗余协议)用于高可用性。
轻量级,配置简单。
主要用来在两个或多个节点之间提供 VIP(虚拟 IP)的高可用性。
轻量级: 相对而言,Keepalived 非常轻量级,因为它只处理 IP 层面的高可用性,不涉及应用层或数据库的复杂逻辑。
MyCAT
用途: 数据库中间件,支持分库分表、读写分离等。
特点:
用于分布式数据库系统的中间件。
复杂的分库分表策略和读写分离配置。
提供了高性能的数据库代理服务。
轻量级: 相对较重,因为它需要处理大量的数据库中间件逻辑,适用于大型分布式数据库系统。
MHA (Master High Availability)
用途: MySQL 主从高可用性管理。
特点:
主要用于 MySQL 的故障转移和恢复。
自动化故障检测和故障转移。
需要配置监控节点和管理脚本。
轻量级: 比 MyCAT 轻量,但比 Keepalived 复杂,因为它需要管理和监控 MySQL 主从复制的状态并执行故障转移。
轻量级程度(从轻到重):
Keepalived: 轻量级,主要用于 IP 层面的高可用性,非常适合需要简单故障转移的场景。
MHA: 较轻量,专注于 MySQL 主从高可用性,比 Keepalived 复杂,但比 MyCAT 简单。
MyCAT: 重量级,适用于需要复杂分布式数据库管理和优化的场景。