负载均衡的概念、分类、算法、健康检查机制及高可用解决方案

负载均衡的概念、分类、算法、健康检查机制及高可用解决方案
一、负载均衡的基本概念与作用
张张的网站因访问量激增(从几人到1万用户)导致服务器崩溃,通过负载均衡解决。
负载均衡像交通指挥中心,通过反向代理服务器提供唯一访问入口,统一接收用户请求后按规则分配给后端多台服务器,可提高网站并发量,还能实时监测后端服务器健康状态,发现服务器故障时自动切换,保证用户访问不受影响,同时可承担SSL卸载等额外职责,减轻后端服务器负担。
作用

  • 统一入口:
    • 对外提供唯一的访问入口,用户只需访问同一个城名,无需关心后端服务器数量
  • 流量分发:
    • 根据规则将请求分配给后端多台服务器,分摊压力,提高并发处理能力。
  • 健康监测:
    • 实时监测后端服务器健康状态,自动剔除故障服务器,保证服务可用性。
  • SSL卸载:
    • 统一处理 HTTPS加密解密,减轻后端服务器负担。

二、负载均衡的实现工具
反向代理服务器nginx (是7层的负载均衡)
常用的如nginx等高性能网关软件支持负载均衡功能,以nginx为例,只需简单配置,将多台服务器组成集群,nginx就能自动分配收到的请求。
三、负载均衡的分类
7层网络层次:
根据网络层次可分为多种类型。

  • 七层负载均衡(应用层),如nginx,能根据HTTP请求内容(如URL路径、cookie等)转发,灵活且成本低,适合中小型网站,但单机并发支撑能力有限(几万到十几万);
  • 四层负载均衡(传输层),依据IP地址和端口号转发,不关心HTTP请求内容,性能高(支撑几十万到上百万并发),
    • 常用实现方案是LVS(Linux Virtual Server Linux 虚拟服务器),它通过修改网络数据包的地址信息,把请求转发到不同的服务器,速度极快,适用于大型网站;
  • DNS负载均衡(在DNS层面分配)
    • DNS负载均衡严格来说属于7层应用层,传统负载均衡是用户请求,已经到达服务器之后再分配,DNS 是在用户浏览器查询域名IP时,DNS服务器按策略返回不同IP实现流量分配 ,
    • 优点:实现简单、成本低,适合全球流量分配,
    • 缺点:不够灵活且DNS有缓存,配置修改不能立即生效。
  • 硬件负载均衡
    • 二层、三层负载均衡及专业硬件设备(如F5负载均衡),但硬件设备价格高,多用于金融、电信等大型企业;

四、负载均衡算法

  • 静态算法(静态算法按固定规则分配,包括)
    • 轮询算法(Round Robin)(像发扑克牌一样轮着分配请求)、
    • 加权轮询算法(Weighted Round Robin)(给性能高的服务器设更高权重,让其处理更多请求)、
    • IP哈希算法(根据用户IP计算哈希值分配服务器,保证同一用户请求到同一服务器,避免登录态丢失,但可能因多用户来自同一局域网导致流量不均,目前主流用Redis做共享session解决登录态问题);
  • 动态算法(动态算法根据服务器实时状态分配,更灵活,包括)
    • 最少连接算法(将请求分给当前连接数最少、最空闲的服务器)、
    • 最快响应算法(将请求分给响应速度最快的服务器),实际工作中多数场景用轮询或加权轮询算法即可。

五、负载均衡的健康检查机制
负载均衡器定期向后端服务器发送心跳请求,检查服务器是否正常响应,若连续多次失败,就将该服务器从服务器列表剔除,待其恢复后再自动添加回来。
六、负载均衡的高可用解决方案
为避免负载均衡器自身故障影响服务,可部署多个负载均衡器,采用主从模式。
主负载均衡器正常工作,从负载均衡器随时待命,二者互相发送心跳包并共享一个虚拟IP地址,当从节点发现主节点无响应时,接管虚拟IP,用户访问同一IP地址无感知。

相关推荐
挖掘狂人3 小时前
负载均衡到底在干嘛?7 个场景给你说明白
架构·负载均衡
codigger3 小时前
负载均衡到底在干嘛?7 个场景给你说明白
网络·架构·负载均衡
陈希1235 天前
Nginx 从入门到能扛事:反向代理、负载均衡与 HTTPS 实战
nginx·https·负载均衡
隔窗听雨眠6 天前
服务器故障闭环管理的工程体系与实践
高可用·服务器运维·故障管理
Flynn Liang9 天前
Spring AI 上生产:限流熔断、密钥与成本治理、私有化/混合部署、降级与 Prompt 灰度架构全解
人工智能·spring·架构·高可用·springai·成本治理·生产架构
未来之窗软件服务10 天前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发
Linux-lucky10 天前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs
Sayai11 天前
Kafka 跨数据中心日志同步实战:MirrorMaker 2 选型对比 + Flink 中继任务落地(双中心互备与消费者组隔离避坑)
大数据·运维·分布式·flink·kafka·消息队列·高可用
小羊没烦恼!13 天前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
Xxtaoaooo14 天前
LLM智能路由实战:用Routing Cost把TTFT降低16.9%
高可用·成本优化·llm应用·智能路由·agent架构