负责均衡的理解

前言:

  1. 负载均衡的核心目的是将网络流量智能、高效地分发到后端多个服务器上。它充当一个"交通指挥官"或"智能调度员",位于用户客户端和后端服务器之间,确保没有任何单个服务器因过载而性能下降或崩溃,从而提升系统的整体处理能力、可用性和可靠性
  2. 这是负载均衡概念的第一章,主要用来介绍一下负载均衡的概念

负载均衡:

背景:

  1. 业务方面:随着互联网的兴起,用户数量增加,业务复杂难度也再增加,其稳定性就成了一个重要的因素,谁的网站稳定性强,谁吸引的人就可能更多。
  2. 技术方面:一个服务器承受不了同时处理上万份客户端的连接,服务器硬件存在极限。而且出现问题后,就无法满足业务的需要了,维护升级困难。

于是就产生了负载均衡这一概念。

概念:

负载均衡(Load Balancing)作用在计算机集群、网络连接、CPU等一系列资源中分配负载,以达到最佳化资源使用,最大化吞吐率、最小化响应时间,同时避免过载的目的

核心目的:

  1. 高可用性:通过检查机制,自动屏蔽故障服务器,将流量只导向健康的服务器,确保服务持续不间断

  2. 高性能与可扩展性:通过增加服务器数量而不是升级单台服务器来轻松应对高并发流量,提升系统整体吞吐量

  3. 可维护性:可以在不影响用户访问的情况下,对后端服务器进行滚动升级、维护

  4. 安全性:作为一道屏障,可以隐藏后端服务器的真实IP,并提供基础的DDoS攻击防护和SSL终结等功能

没有负载均衡的Web架构:
  1. 如果这个服务器坏了,用户将无法访问该服务器
  2. 如果多个用户同时访问该服务器,超过了处理的极限,就会出现处理缓慢或者无法访问的情况
有负载均衡的Web架构:

在这种架构中,在用户和后端服务器群之间,引入了负载均衡器

  1. 统一入口:所有用户请求首先到达负载均衡器

  2. 智能分发:负载均衡器根据预设的算法(如轮询、最少连接数、最快响应时间等),从服务器池中选择一台后端服务器

  3. 转发请求:负载均衡器将用户请求转发给选中的服务器

  4. 返回响应:后端服务器处理请求后,将响应返回给负载均衡器,再由负载均衡器返回给用户


负载均衡的分类:

从技术层面看:

|--------|-------|--------------------------------------------------------|------------------|----------|
| | 工作层次 | 工作原理 | 核心依据 | 目的 |
| 二层负载均衡 | 数据链路层 | 通过MAC地址将网络流量分散到多条物理链路上,同时监控链路状态,当一条链路失效时,流量会自动切换到其他链路上 | MAC地址 | 链路聚合与冗余 |
| 三层负载均衡 | 网络层 | 通过路由协议发现多条路径,并利用IP地址等将去往同一目标的流量,分散到不同的下一跳上 | IP地址路由 | 网络路径负载 |
| 四层负载均衡 | 传输层 | 基于IP地址和TCP/UDP端口进行转发。它看到的是数据包,不关心应用层内容 | IP+TCP/UDP端口 | 服务器连接分发 |
| 七层负载均衡 | 应用层 | 基于HTTP/HTTPS等应用层协议的信息进行转发。可以解析URL、消息内容等 | HTTP/HTTPS | 智能应用请求分发 |

从产品属性分类看:

  1. 软件负载均衡:在服务器的操作系统上,安装软件,来实现负载均衡,优点是配置简单,成本低廉,可以满足大部分的负载均衡的请求
  2. 硬件负载均衡:是直接在服务器和外部网络间安装负载均衡硬件设备,这种设备被称为负载均衡器。独立于操作系统,整体性得到大幅提高,可以实现更多的负载均衡策略,可达到最佳的负载均衡需求。但是成本较高,一般只要运营商,银行等才会采用硬件负载均衡

关键调度算法

负载均衡器根据以下算法决定将请求分发给哪台服务器:

  1. 轮询:依次将请求分发给每台服务器,简单公平

  2. 最少连接 :将新请求发送给当前活跃连接数最少的服务器,非常动态且有效

  3. 源IP哈希 :根据客户端源IP地址计算哈希值,将同一IP的请求总是发给同一台服务器。用于会话保持,但可能导致负载不均

  4. URL哈希:根据请求的URL进行哈希,确保相同URL的请求(如特定用户的资源)落到同一服务器,利于缓存

  5. 加权响应时间 :将请求转发给平均响应时间最短的服务器


工作流程

一个典型的负载均衡系统包含以下工作流程:

  1. 客户端请求:用户通过IP访问服务

  2. 负载均衡器:接收所有客户端请求的实体(硬件设备、软件或云服务)

  3. 虚拟服务地址(VIP):对外提供一个统一的IP地址或域名,客户端只与此地址通信

  4. 服务器池:后端实际处理请求的服务器(Web服务器、应用服务器、数据库服务器等)

  5. 健康检查:负载均衡器定期向后端服务器发送探测请求(如HTTP GET、TCP SYN),检查其是否健康。不健康的服务器会被从池中暂时移除

  6. 流量分发:根据预设的算法,将客户端的请求转发到健康的服务器

  7. 服务器响应 :服务器处理请求后,响应通常直接返回给客户端

相关推荐
wyjcxyyy1 小时前
2025polar冬季赛复盘(WEB,MISC)
运维·服务器
代码不停1 小时前
HTTP / HTTPS详细介绍
网络协议·http·https
HealthScience1 小时前
vscode通过跳板机连接到服务器
服务器·ide·vscode
翔云1234561 小时前
服务器异常崩溃,GTID 是否会出现在 mysql.gtid_executed 表但不在 binlog 中
服务器·mysql·adb
寒山李白1 小时前
关于supervisor-win的安装、配置和使用
服务器·python·supervisor
澄岚明雪1 小时前
八股复习之计算机网络中TCP与UDP的区别
网络·计算机网络
weixin_448855771 小时前
自动化构建、测试、部署(上)
运维·自动化
G_Cloudpipe1 小时前
Nginx 服务器部署
运维·服务器·nginx
AttaGain1 小时前
GitLab数据备迁移及系统升级
运维·服务器·gitlab