如何实现负载均衡的高可用性?

负载均衡高可用是分布式系统中不可或缺的重要环节,通过负载均衡按照指定的调度算法将请求分发至网络中多个节点进行处理,本文将介绍基于开源软件HAProxy实现负载均衡并且通过Keepalived实现高可用的配置方法,希望读者通过参考本文的探索成果可以快速实现高可用的软件负载均衡,也希望读者能够举一反三、触类旁通,通过自我驱动进行更深入的研究来配置更多的功能来满足自身需求。

负载均衡与高可用

负载均衡是分布式系统中不可或缺的重要环节,通过负载均衡按照指定的调度算法将请求分发至网络中多个节点进行处理,常见的负载均衡技术包括硬件负载均衡和软件负载均衡,硬件负载均衡器如F5 BIG-IP,主要应用于接入层,处理多链路负载均衡、防火墙负载均衡和服务器负载均衡,软件负载均衡则在代理层工作,常用的软件包括LVS、HAProxy和Nginx。

高可用性(High Availability,简称HA)是指系统提供一定性能上的服务运行时间高于平均正常时间段,消除系统服务不可用的时间,衡量系统是否满足高可用,就是当一台或者多台服务器宕机的时候,系统整体和服务依然正常可用,一些知名的网站保证4个9以上的可用性,即可用性超过99.99%。

Keepalived的功能及安装配置

Keepalived核心功能

1、管理LVS负载均衡软件:Keepalived最初是专为解决LVS的问题而诞生的,因此Keepalived和LVS可紧密结合。

2、实现对LVS集群节点健康检查:当LVS集群中某个节点服务器发生故障时,Keepalived服务会自动将失效的节点从正常队列中剔除,并将请求调度到别的正常的节点服务器上,从而保证用户访问不受影响。

3、网络服务高可用功能:Keepalived可以实现任意两台主机之间,如Master服务器和Backup服务器间的故障转移和自动切换,假设某个服务是不能停机的,如LVS负载均衡、Nginx反向代理服务器等,可以利用Keepalived保证其高可用性。

Keepalived高可用原理

Keepalived高可用服务的故障切换转移是通过VRRP机制来实现的,在Keepalived服务正常运行时,Master节点会不断向Backup节点发送(多播方式)心跳信息,用以通知Master节点的存活状态,当Master节点发生故障时,就无法发送心跳信息,Backup节点也就无法检测到来自Master的心跳信息,于是调用自身的接管程序,接管Master的资源和服务,当Master恢复时,Backup又会释放Master故障时自身接管的资源和服务,恢复到原来的备用角色,无论Master如何切换,对外都应该提供相同的服务IP地址,该IP也称作虚拟地址VIP,客户端并不需要因Master的改变而修改自己的配置,对他们来说这种切换是透明的。

Keepalived安装与配置

1、安装:Keepalived支持源码安装,同时也可以通过不同操作系统安装工具进行安装,本文以CentOS的yum工具为例进行安装介绍,此时应该准备两台服务器分别作为Master节点和Backup节点,分别在两台服务器上执行以下命令进行安装。

   yum install -y keepalived

2、高可用配置:yum安装后,Keepalived将生成配置文件:/etc/keepalived/keepalived.conf,可利用文本编辑器进行配置修改。

   vi /etc/keepalived/keepalived.conf

配置文件中主要由全局段、VRRP实例段、脚本段组成。

全局段定义(global_defs):全局段定义允许用户设置全局相关信息,例如通知信息、关键参数配置等,该段配置在Master节点和Backup节点上应当一致。

     global_defs {
         notification_email {
             sysadmin@example.com 
         }
         notification_email_from noreply@example.com 
         smtp_server 192.168.32.128  #主服务器的ip地址,邮件服务器地址
         smtp_connect_timeout 30    # 超时时间
         router_id LVS_DEVEL    # 机器标识 局域网内唯一即可。 LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机
     }

VRRP实例段:定义了虚拟路由冗余协议实例,用于实现高可用。

     vrrp_instance VI_1 {
         state MASTER            # 两个 DS,一个为 MASTER 一个为 BACKUP
         interface enp1s0        # 当前 IP 对应的网络接口,通过 ifconfig 查询
         virtual_router_id 62    # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样
         priority 200            # 优先级值设定:MASTER 要比 BACKUP 的值大
         advert_int 1            # 通告时间间隔:单位秒,主备要一致
         authentication {        # 认证机制,主从节点保持一致即可
             auth_type PASS   #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
             auth_pass 1111
         }
         virtual_ipaddress { # 自定义虚拟IP,自定义的虚拟ip得根据真实ip设置,比如真实ip是192.168.91.138,那么虚拟ip可以设置为192.168.91.139~255,前面三个数得一致
             192.168.32.50 # 定义虚拟ip(VIP),可多设,每行一个
         }
     }

脚本段:用于定义健康检查脚本,定期检查服务是否正常。

     vrrp_script chk_http_port {
         script "/usr/local/src/nginx_check.sh"   #检测脚本存放的路径
         interval 2   # 检测脚本执行的间隔,即检测脚本每隔2s会自动执行一次
         weight 2  #权重,如果这个脚本检测为真,服务器权重+2
     }

HAProxy的功能及安装配置

HAProxy是一款免费的、开源的软件,可以在OSI模型的第四层(传输层)或第七层(应用层)上做负载均衡和反向代理,它特别适用于那些负载压力大的web站点,这些站点通常需要会话保持或七层处理,HAProxy运行在时下的服务器上,可以支持数以万计的并发连接,它允许用户定义多组服务代理,通过服务代理将流量由前端负载均衡至后端服务器节点上。

HAProxy安装与配置

1、安装:以CentOS为例,可以使用yum工具进行安装。

   yum install -y haproxy

2、配置:编辑HAProxy配置文件/etc/haproxy/haproxy.cfg。

   vi /etc/haproxy/haproxy.cfg

示例配置如下:

   frontend fe_app
       bind *:80
       default_backend be_app
   backend be_app
       balance roundrobin
       server app1 172.17.13.142:80 check
       server app2 172.17.13.173:80 check

Keepalived + HAProxy组合实现高可用负载均衡

由于HAProxy会存在单点故障问题,可以由Keepalived来为HAProxy提供高可用服务,同时HAProxy提供四层或七层高性能负载均衡及反向代理服务,两者共同实现高可用负载均衡,结构如图1所示。

如何实现负载均衡的高可用性?

*图1 Keepalived + HAProxy结构图

负载均衡高可用是分布式系统中不可或缺的重要环节,通过负载均衡按照指定的调度算法将请求分发至网络中多个节点进行处理,本文介绍了基于开源软件HAProxy实现负载均衡并且通过Keepalived实现高可用的配置方法,Keepalived的高可用功能通过VRRP协议实现,而HAProxy则提供了高性能的负载均衡和反向代理服务,通过Keepalived为HAProxy提供高可用服务,可以确保系统的高可用性和稳定性。

以上就是关于“负载均衡高可用怎么做”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1383722.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希的头像未希新媒体运营
上一篇 2024-12-06 10:01
下一篇 2024-12-06 10:06

相关推荐

  • 服务器多开游戏,如何实现与优化?

    服务器多开游戏是一种在一台服务器上同时运行多个游戏实例的技术,这通常用于游戏开发、测试或私人服务器的搭建,本文将详细介绍服务器多开游戏的相关知识,包括其原理、实现方法、优缺点以及常见问题解答,服务器多开游戏的原理服务器多开游戏的核心原理是通过虚拟化技术或容器技术,在同一台物理服务器上创建多个独立的运行环境,每个……

    2024-12-15
    06
  • CDN在实际应用中的表现与效果如何?

    CDN(内容分发网络)是一种通过在全球分布的服务器节点缓存和分发网站或应用程序的内容,以减少延迟、提高访问速度和用户体验的技术,以下是关于CDN场景的详细介绍:CDN的基本工作原理1、全球节点分布:CDN在全球各地部署了大量边缘节点,这些节点通常位于网络条件优越的位置,以便快速响应用户请求,节点的选择基于地理位……

    2024-12-14
    05
  • 如何设置CDN的多节点?

    CDN(内容分发网络)通过在全球分布的多个节点缓存和分发内容,能够显著提高用户访问速度、减轻源服务器负载并提升整体用户体验,设置多节点CDN是一个复杂但至关重要的过程,涉及多个步骤和考虑因素,以下是详细的步骤和建议:选择合适的CDN服务提供商选择合适的CDN服务提供商是设置多节点CDN的首要步骤,不同的提供商在……

    2024-12-14
    01
  • 服务器为何会拥有多个外网地址?

    在当今的互联网环境中,服务器通常需要配置多个外网地址以满足不同的业务需求和提高网络的可靠性,这些地址可以是IPv4或IPv6地址,或者是两者的组合,多个外网地址的配置可以带来多方面的好处,包括负载均衡、故障转移、安全性增强以及满足不同用户的访问需求等,服务器多个外网地址的配置原因1、负载均衡:通过多个外网地址……

    2024-12-14
    02

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入