当前位置: 首页 > news >正文

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

往期文章

负载均衡器: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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 文件目录操作,以及json.dump() 和 json.load()
  • 全志Android8, Android 10限制存储500M问题
  • 73、 dockerfile
  • web前端之实现霓虹灯背景魔术卡、旋转的背景动画、模糊效果、边框、变量、filter
  • 深入理解 go unsafe
  • 【教师视角】揭秘SmartEDA电路仿真:教学新利器,点亮学生电子梦想之路!
  • 【QuikGraph】图算法之TSP旅行商问题求解
  • 熟能生巧
  • spring揭秘00-ioc定义与ioc容器及集成工厂模式
  • 韩国服务器的性能如何提升
  • 系统数据库介绍及实践
  • springboot+vue生成word文件下载(最简单教程)
  • web前端之实现一只可爱的小杰尼乌龟、伪元素、动画
  • 什么是回滚
  • Java爬虫中的数据清洗:去除无效信息的技巧
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【面试系列】之二:关于js原型
  • AHK 中 = 和 == 等比较运算符的用法
  • android 一些 utils
  • git 常用命令
  • HTTP 简介
  • JavaScript-Array类型
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Mybatis初体验
  • overflow: hidden IE7无效
  • vue-loader 源码解析系列之 selector
  • XML已死 ?
  • 回顾 Swift 多平台移植进度 #2
  • 基于axios的vue插件,让http请求更简单
  • 前端相关框架总和
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​​​【收录 Hello 算法】9.4 小结
  • ###STL(标准模板库)
  • (6)STL算法之转换
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (zt)最盛行的警世狂言(爆笑)
  • (纯JS)图片裁剪
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (三分钟)速览传统边缘检测算子
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .form文件_一篇文章学会文件上传
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • @Resource和@Autowired的区别
  • @软考考生,这份软考高分攻略你须知道
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [Android] Amazon 的 android 音视频开发文档