Nginx、HAProxy、LVS三者的对比
发布网友
发布时间:2022-12-01 15:16
我来回答
共1个回答
热心网友
时间:2023-11-07 12:20
图解说明:
(1) HAProxy 实现了 Mycat 多节点的集群高可用和负载均衡, 而 HAProxy 自身的高可用则可以通过Keepalived 来实现。 因此, HAProxy 主机上要同时安装 HAProxy 和 Keepalived, Keepalived 负责为该服务器抢占 vip(虚拟 ip,图中的 192.168.9.190),抢占到 vip 后,对该主机的访问可以通过原来的 ip(192.168.9.174)访问,也可以直接通过 vip(192.168.9.190)访问。
(2) Keepalived 抢占 vip 有优先级, 在 keepalived.conf 配置中的 priority 属性决定。但是一般哪台主机上的 Keepalived服务先启动就会抢占到 vip,即使是 slave,只要先启动也能抢到(要注意避免 Keepalived的资源抢占问题)。
(3) HAProxy 负责将对 vip 的请求分发到 Mycat 集群节点上, 起到负载均衡的作用。 同时 HAProxy 也能检测到 Mycat 是否存活, HAProxy 只会将请求转发到存活的 Mycat 上。
(4) 如果 Keepalived+HAProxy 高可用集群中的一台服务器宕机, 集群中另外一台服务器上的 Keepalived会立刻抢占 vip 并接管服务, 此时抢占了 vip 的 HAProxy 节点可以继续提供服务。
(5) 如果一台 Mycat 服务器宕机, HAPorxy 转发请求时不会转发到宕机的 Mycat 上,所以 Mycat 依然可用。
综上: Mycat 的高可用及负载均衡由 HAProxy 来实现,而 HAProxy 的高可用,由 Keepalived 来实现。