什么是负载均衡?负载均衡器如何运作?

往期文章

负载均衡器:LVS、Nginx、HAproxy如何选择?


目录


什么是负载均衡?

负载均衡是一种网络技术,旨在通过在多个服务器之间均匀地分散用户请求或工作负载,从而提高应用程序的响应速度和服务质量。在互联网上,负载平衡经常被用来在几个服务器之间分配网络流量。这能够减少每台服务器的压力,使服务器更有效率,加快性能,减少延迟。

简单来说,负载均衡器就像是交通堵塞时的交警,确保每辆车都能快速找到最通畅的道路通过。

总之,它的目的就通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题。


为什么需要负载均衡?

随着互联网应用的普及和发展,单一服务器往往无法满足大规模用户同时访问的需求。就像一个繁忙的路口如果没有有效的交通管理,会导致严重的交通拥堵。

负载平衡本质上是为了解决同样的问题。通过在多个服务器之间分配用户请求,大大减少了用户等待时间。这会带来更好的用户体验


负载均衡工作原理?

负载均衡由称为负载均衡器的工具或应用程序处理。负载平衡器可以是基于硬件的,也可以是基于软件的。

  • 硬件负载平衡器需要安装专用的负载平衡设备;
  • 基于软件的负载平衡器可以在服务器、虚拟机或云中运行。

内容交付网络 (CDN) 通常包括负载平衡功能。

当来自用户的请求到达时,负载平衡器将请求分配到给定的服务器,并对于每个请求重复此过程。负载平衡器根据多种不同的算法确定应由哪个服务器处理每个请求。这些算法分为两大类:静态和动态

静态负载均衡算法

静态负载平衡算法在分配工作负载时不考虑系统的当前状态。

静态负载平衡器不会知道哪些服务器运行缓慢以及哪些服务器没有被充分使用。相反,它根据预先确定的计划分配工作负载。静态负载平衡可以快速设置,但会导致效率低下。

静态负载均衡算法包括:轮询,比率,优先权

  • 轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。

  • 比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。

  • 优先权(Priority):给所有服务器分组,给每个组定义优先权,BIG-IP 用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIG-IP 才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。

动态负载均衡算法

动态负载平衡算法会考虑每台服务器的当前可用性、工作负载和运行状况。他们可以将流量从负担过重或性能不佳的服务器转移到未充分利用的服务器,从而保持分配的均匀和高效。

但是,动态负载平衡更难配置。影响服务器可用性的因素有很多:每台服务器的运行状况和整体容量、正在分配的任务的大小等等。

有几种类型的动态负载平衡算法,包括最少连接、加权最少连接、基于资源和基于地理位置的负载平衡。

  • 最少的连接方式(Least Connection):传递新的连接给那些进行最少连接处理的服务器。

  • 最快模式(Fastest):传递连接给那些响应最快的服务器。

  • 观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器

  • 动态性能分配(Dynamic Ratio-APM):BIG-IP 收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。


参考

http://www.52im.net/thread-2494-1-1.html

相关推荐
努力的悟空31 分钟前
国土变更调查拓扑错误自动化修复工具的研究
运维·自动化
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
耗同学一米八2 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
东华果汁哥3 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
肖永威4 小时前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
布鲁格若门4 小时前
CentOS 7 桌面版安装 cuda 12.4
linux·运维·centos·cuda
Eternal-Student4 小时前
【docker 保存】将Docker镜像保存为一个离线的tar归档文件
运维·docker·容器
dessler4 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
DC_BLOG4 小时前
Linux-Apache静态资源
linux·运维·apache
码农小丘4 小时前
一篇保姆式centos/ubuntu安装docker
运维·docker·容器