What is load balancing? 什么是负载均衡?

news2025/1/7 22:12:17

原文链接 What Is Load Balancing? | IBM

什么是负载均衡?

在多台服务器之间高效的分配网络流量的过程,以优化应用程序的可用性,同时确保积极的用户体验。

电商网站依赖负载均衡(load balancing)来确保web应用能够无延迟,不停机的发送数据到用户端。

负载均衡如何工作的?

负载平衡可以通过几种方式实现。

【硬件负载平衡器(load balancers)】是在本地(on premises)安装和维护的物理设备(physical appliance)。

【软件负载平衡器】是安装在私有(privately-owned)服务器上或作为托管云服务(managed cloud service)(云负载均衡)的应用程序。

负载均衡器通过实时调解(mediating)来自客户端的请求并确定哪些后端服务器最适合处理这些请求来工作。为了防止单个服务器过载(overloaded),负载均衡器会将请求路由(routes)到任何数量的本地( on premises)或托管在服务器农场(hosted in server farms)或云数据中心的可用服务器上。

一旦分配的服务器接收到请求,它会通过负载均衡器向客户端做出响应。然后,负载均衡器通过将客户端的IP地址与选定服务器的IP地址匹配来完成服务器到客户端的连接。客户端和服务器然后能够进行通信并执行所需的任务,直到会话结束。

如果网络流量突然增加(spike),负载均衡器可能会启动额外的服务器以满足需求。

或者,如果网络流量暂时减少(lull),负载均衡器可能会减少可用服务器的数量。

它还可以通过将流量路由到缓存服务器(cache servers来辅助网络缓存,缓存服务器临时存储以前的用户请求。

负载均衡的好处

高可用 (Availability)

        负载平衡器在将请求路由到服务器之前对服务器执行健康检查(health checks)。

        如果一台服务器即将发生故障,或因维护或升级而离线,负载平衡会自动将工作负载重新路由到工作服务器,以避免服务中断(interruptions)并保持高可用性。

易扩展 (Scalability)

        负载平衡实现了按需(on-demand)的高性能( high-performance)基础设施,可以处理最重或最轻的网络流量负载。

        可以根据需要添加或删除物理或虚拟服务器(Physical or virtual ),使可扩展性变得简单和自动化。

安全 (Security)

        负载均衡器可以包括安全功能,

        如SSL加密、

        web应用程序防火墙(web application firewalls aka WAF)和

        多因素身份验证(multi-factor authentication aka MFA)。

        它们还可以被整合到应用交付控制器(application delivery controllers aka ADC)中,以提高应用安全性。

        通过安全地路由或卸载(routing or offloading)网络流量,负载平衡可以帮助防御分布式拒绝服务攻击(distributed denial-of-service aka DDoS)等安全风险。

负载均衡算法

针对不同的情况,使用不同的算法。

轮询(Round robin

        最少工作量此算法使用域名系统( Domain Name System aka DNS)以连续轮换( continuous rotation)的方式将请求顺序(sequentially)分配给每个服务器。

        这是最基本的负载平衡方法,因为它只使用每个服务器的名称来确定哪个服务器接收下一个传入请求。

加权轮询(Weighted round robin

        除了DNS名称外,此算法中的每个服务器还被分配了一个“权重(weight)”。

        权重决定了哪些服务器应该比其他服务器具有处理传入请求的优先级(priority)。

        管理员(administrator)根据每个服务器的容量和网络需求决定如何对其进行加权。

IP哈希(IP hash

        计算将传入请求的IP地址简化(或哈希)(simplifies (or hashes))为一个称为哈希键(hash key)的较小值。然后,这个唯一的哈希键(hash key)(代表用户的IP地址)被用作决定如何将请求路由到特定服务器的基础。

最少连接(Least connections

        顾名思义,当收到新的客户端请求时,此算法会优先考虑活动连接最少的服务器(fewest active connections)。这种方法有助于防止服务器因连接而过载(overloaded),并始终保持服务器之间的负载一致(consistent load)。

最快响应(Least response time

        该算法将最少连接(least connection)方法与最短(shortest)的平均服务器响应时间相结合。连接数量以及服务器执行请求和发送响应所需的时间都会被评估。具有最少活动连接的最快服务器将接收传入请求。

负载均衡器的类型

虽都是分发流量,但针对特定功能有特定类型的负载均衡器。

网络负载平衡器 (Network load balancers)

        优化流量,减少局域网和广域网的( local and wide area networks)延迟。它们使用IP地址和目标端口(destination ports)等网络信息,以及TCP和UDP协议来路由网络流量,并提供足够的吞吐量(throughput)来满足用户需求。

应用层负载均衡器 (Application load balancers)

        使用诸如URLs, SSL sessions 和 HTTP headers之类的应用层内容(application content)来路由API请求流量。由于多个应用层服务器存在重复功能,检查应用层( application-level )内容有助于确定哪些服务器可以快速可靠地满足特定请求。

虚拟负载平衡器(Virtual load balancers)

        随着虚拟化(virtualization)和VMware技术的兴起,虚拟负载平衡器(virtual load balancers)现在被用来优化服务器、虚拟机和容器之间的流量。Kubernetes等开源容器编排工具(orchestration tools)提供了虚拟负载平衡功能,可以在集群中容器(containers)的节点(nodes)之间路由请求

全局服务器负载平衡器 Global server load balancers)

        这种类型的负载均衡器将流量路由到多个地理(geographic)位置的服务器,以确保应用程序的可用性。用户请求可以分配给最近(closest)的可用服务器,或者如果服务器发生故障,可以分配给另一个有可用服务器的位置。这种故障转移功能(failover capability)使全局服务器负载平衡成为灾难恢复的重要组成部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2258624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++算法】40.模拟_N 字形变换

文章目录 题目链接:题目描述:解法C 算法代码: 题目链接: 6. N 字形变换 题目描述: 解法 解法一:模拟 a,b,c,d,e,f,g...... n4 弄个矩阵放进去,最后从左往右读取。 解法二:模拟优化-…

vue3监听横向滚动条的位置;鼠标滚轮滑动控制滚动条滚动;监听滚动条到顶端

1.横向取值scrollLeft 竖向取值scrollTop 2.可以监听到最左最右侧 3.鼠标滚轮滑动控制滚动条滚动 效果 <template><div><div class"scrollable" ref"scrollableRef"><!-- 内容 --><div style"width: 2000px; height: 100…

期末复习-计算机网络

目录 第四章&#xff1a;网络层 1. 虚电路服务和数据报服务的对比 2. 分类的 IP 地址 3. IP 地址与硬件地址&#xff0c;地址解析协议 ARP 4. IP 数据报的格式 5. IP 层转发分组的流程 6. 划分子网&#xff08;子网掩码、划分子网、使用子网时分组的转发&#xff09; …

20分钟入门solidity(1)

1. Solidity简介 Solidity是一种静态类型编程语言&#xff0c;专门用于在以太坊区块链上编写智能合约。它借鉴了JavaScript、Python和C的语法&#xff0c;非常适合开发在以太坊虚拟机&#xff08;EVM&#xff09;上运行的应用程序。 智能合约&#xff1a;表达商业、法律关系的…

【毕业设计选题】数据科学与大数据专业毕业设计选题与建议

目录 前言 毕设选题 开题指导建议 更多精选选题 选题帮助 最后 前言 大家好,这里是海浪学长毕设专题! 大四是整个大学期间最忙碌的时光&#xff0c;一边要忙着准备考研、考公、考教资或者实习为毕业后面临的升学就业做准备,一边要为毕业设计耗费大量精力。学长给大家整…

AI开源南京分享会回顾录

AI 开源南京分享会&#xff0c;已于2024年11月30日下午在国浩律师&#xff08;南京&#xff09;事务所5楼会议厅成功举办。此次活动由 KCC南京、PowerData、RISC-Verse 联合主办&#xff0c;国浩律师&#xff08;南京&#xff09;事务所协办。 活动以“开源视角的 AI 对话”为主…

Linux24.04 安装企业微信

今天工作需要把windows系统换成了linux&#xff0c;但是公司的沟通工具是企业微信。去企业微信官网看了&#xff0c;没有linux版本&#xff0c;只能想办法解决了&#xff0c;不然再换回去就太坑了。 方案 1、使用docker容器&#xff0c;2、使用deepin-wine 本人对docker不太熟…

架构学习第六周--Kubernetes(二)

目录 一、Service与服务发现 1.1&#xff0c;Service资源基本概念 1.2&#xff0c;名称解析 二、应用编排 2.1&#xff0c;Deployment控制器 2.2&#xff0c;DaemonSet和StatefulSet控制器 2.3&#xff0c;Job和CronJob控制器 三、认证体系 3.1&#xff0c;认证介绍 3…

[SWPUCTF 2021 新生赛]crypto9

[MoeCTF 2021]Web安全入门指北—GET 意思是GET传参&#xff0c;moeflag 就可以得到falg 输入?moeflag flag为&#xff1a; NSSCTF{ff26110b-8793-403c-990e-15c7f1820596} [SWPUCTF 2021 新生赛]crypto9 #gpt写的代码 from itertools import product letter_list ABCDEFG…

Python爬虫之Selenium的应用

【1】Selenium基础介绍 1.什么是selenium&#xff1f; &#xff08;1&#xff09;Selenium是一个用于Web应用程序测试的工具。 &#xff08;2&#xff09;Selenium 测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。 &#xff08;3&#xff09;支持通过各种driv…

VSCode设置字体

参考文章&#xff1a;【面向小白】vscode最佳实践&#xff08;2&#xff09;—— 字体设置&#xff08;fira code更纱黑体&#xff09;&#xff0c;这篇文章末尾给了安装字体的链接。 配置的字体还是很好看的。 ‘Fira Code Retina’, ‘Sarasa Mono Sc’ 需要注意的一个点&am…

Edge SCDN深度解析,边缘安全加速的创新实践

边缘安全加速&#xff08;Edge Secure Content Delivery Network&#xff0c;SCDN&#xff09;是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术&#xff0c;智能调度使用户就近获取所需内容&#xff0c;为…

币安移除铭文市场的深度解读:背后原因及其对区块链行业的影响

引言&#xff1a; 就在昨天&#xff0c;2024年12月10号&#xff0c;币安宣布将移除铭文市场&#xff08;Inscriptions Market&#xff09;。这一消息引发了全球加密货币社区的广泛关注&#xff0c;尤其是在比特币NFT和数字收藏品市场快速发展的背景下。铭文市场自诞生以来迅速…

微信小程序--创建一个日历组件

微信小程序–创建一个日历组件 可以创建一个日历组件&#xff0c;来展示当前月份的日期&#xff0c;并支持切换月份的功能。 一、目录结构 /pages/calendarcalendar.wxmlcalendar.scsscalendar.jscalendar.json二、calendar.wxml <view class"calendar"><…

鸿蒙ArkTS语言基础语法详解

文章目录 鸿蒙ArkTS语言基础语法详解一、引言二、ArkTS语言概述1. ArkTS语言特点2. TypeScript基础语法2.1 类型注解2.2 接口2.3 泛型2.4 类的继承2.5 类的访问修饰符 三、ArkTS的基本组成3.1 装饰器3.2 UI描述3.3 自定义组件3.4 系统组件3.5 属性方法和事件方法 四、自定义组件…

STM32 HAL库之SDIO例程 Micro SD卡 - 2

1、硬件图 2、示例代码 根据提示配置SDCLK为72/3 24MHz。 static void MX_SDIO_SD_Init(void) {/* USER CODE BEGIN SDIO_Init 0 */SD_InitTypeDef Init;Init.ClockEdge SDIO_CLOCK_EDGE_RISING;Init.ClockBypass SDIO_CLOCK_BYPASS_DISABLE;Init.ClockPo…

小程序开发中的插件生态与应用-上

更多精彩内容都在公zhong号&#xff1a;小白的大数据之旅 在小程序的开发过程中&#xff0c;插件作为扩展功能、提升效率的重要工具&#xff0c;扮演着不可或缺的角色。它们不仅能够帮助开发者快速集成复杂的功能模块&#xff0c;还能优化开发流程&#xff0c;缩短项目周期。 …

深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)

深入了解Text2SQL开源项目&#xff08;Chat2DB、SQL Chat 、Wren AI 、Vanna&#xff09; 前言1.Chat2DB2.SQL Chat3.Wren AI4.Vanna 前言 在数据驱动决策的时代&#xff0c;将自然语言查询转化为结构化查询语言&#xff08;SQL&#xff09;的能力变得日益重要。无论是小型创业…

Java面试之单例模式浅谈

单例模式是Java面试中常会问到的一个问题&#xff0c;众所周知&#xff0c;单例模式分为两大部分&#xff1a;饿汉模式和懒汉模式。但是&#xff0c;如果当面试官问道关于单例模式的话&#xff0c;如果你只答出这两种模式&#xff0c;且懒汉模式还是最基础最简陋版的话&#xf…

零距离对接Modnbus转Profinet网关连接伺服与PLC

本研究案例详细阐述了开疆智能Modbus转Profinet网关KJ-PNG-201在实现HD3-L系列通用伺服驱动器与PLC互联中的应用。所涉及的设备包括西门子S7-1200 PLC、Modbus转Profinet网关以及HD3-L系列通用伺服驱动器。通过网关转换MODBUS协议的伺服驱动器与PROFINET协议的PLC之间的通信&am…