架构

aaaa.png

  • 其中 Haproxy 作为负载均衡组件,位于最前端接收客户端的请求并将请求分发到各个 Mycat 节点上,用于保证Mycat 的高可用。
  • Keepalived 则用于实现双机热备,用于保证 Haproxy 的高可用。
    • 同一时间下只会有一个Haproxy在运行,另一个Haproxy作为备用处于等待状态。
    • 当正在运行中的Haproxy因意外宕机时,Keepalived能够马上将备用的Haproxy切换到运行状态。
  • Keepalived 是让主机之间争抢同一个虚拟IP(VIP)来实现高可用的,这些主机分为 Master 和 Backup 两种角色,并且 Master 只有一个,而 Backup 可以有多个。最开始 Master 先获取到VIP处于运行状态,当 Master 宕机后,Backup 检测不到 Master 的情况下就会自动获取到这个 VIP,此时发送到该 VIP 的请求就会被Backup接收到。这样 Backup 就能无缝接替 Master 的工作,以实现高可用。
    • 即 Keepalived 本身就是高可用的

另一个架构

  • 可以让一个 keepalive 竞争两个 vip,避免 keeaplive 浪费