首页 > 其他分享 >计算机网络中的负载均衡

计算机网络中的负载均衡

时间:2024-05-29 17:58:00浏览次数:23  
标签:负载 请求 计算机网络 均衡 均衡器 服务器 客户端

本期从什么是负载均衡,为什么要有负载均衡,如何实现负载均衡,以及负载均衡相关的算法来讨论负载均衡

1.什么是负载均衡:

负载均衡(Load Balancing)是一种在计算机网络中用于分发网络流量或工作负载的方法,以确保资源的高效利用和系统的高可用性 。它通过将请求或任务分发到多个服务器或节点上,以实现负载的均衡和分摊 。负载均衡的目标是确保系统能够处理高负载,并提供良好的性能、可靠性和可扩展性 。

2.为什么要有负载均衡:

在早期互联网中,互联网通常都是单体架构:即只需要一个服务器来支撑整个业务的搭建。显然这种架构有着很多问题,比如:

1.扩展性差:单体架构将所有组件和功能模块集中部署在一个系统中,当系统规模扩大时,会面临性能瓶颈和扩展性问题。因为所有的请求都需要通过单一的系统进行处理,这会导致系统负载增加,响应时间变慢。

2.灵活性差:单体架构中的所有组件和功能模块都是紧密耦合的,相互依赖性强,导致系统的灵活性差。当需要对系统进行修改或升级时,需要对整个系统进行重新部署,这会增加系统的维护成本和风险。

3.可靠性差:所有的组件和功能都集中在一个系统中,一旦系统发生故障就会导致整个网络受到影响。

4.开发和部署复杂:单体架构中的所有组件和功能模块都需要在一个开发环境中进行开发和部署,这会导致开发和部署过程复杂,开发效率低下。

5.技术栈受限:单体架构中的所有组件和功能模块都需要使用相同的技术栈和开发语言,这会限制系统的技术选择和创新能力。

6.安全风险高:由于所有组件和功能模块都部署在一个系统中,一旦系统被攻击或存在漏洞,整个网络都会受到威胁。

于是为了解决这些问题,就产生了集群架构,即把一个软件应用同时部署在多个服务器上。这样就能有效的避免单体架构的问题,但集群结构也有相应的问题。比如

1.客户端发送的请求如何均匀的发到各个目标服务器上?

2.如何检测出目标服务器的状态使得客户端不向不健康的服务器发送请求?

为了解决这些问题,于是引入了负载均衡的概念。

3.如何实现负载均衡:

目前有三个方面来实现负载均衡:

1.由硬件来实现负载均衡:

优点:性能高、可靠性强、可扩展性好。由于是专门用于实现负载均衡的设备或设备集群,因此可以提供更高的处理能力和更低的延迟。同时,由于是硬件设备,因此可以提供更高的可靠性和稳定性。此外,硬件负载均衡器通常还具备丰富的功能和特性,如SSL加速、缓存加速、应用加速等,可以满足不同应用场景的需求。

原理:当客户端发送请求到负载均衡器的IP地址时,负载均衡器会根据负载均衡算法选择一个服务器来处理该请求。负载均衡器会监控服务器的性能和负载情况,并根据这些信息来选择服务器。一旦服务器处理完请求并返回响应,负载均衡器会将响应转发给客户端。

缺点:硬件负载均衡器的缺点在于成本较高,需要购买和维护专门的设备或设备集群。同时,由于是硬件设备,因此升级和扩展相对复杂,需要进行物理设备的更换或升级。

2.由软件来实现负载均衡:

优点:在于成本较低、灵活性强、可扩展性好。由于不需要专门的硬件设备,因此可以降低成本。同时,由于是软件程序,因此可以灵活地部署在不同的服务器上,并根据需求进行扩展。

原理:当客户端发送请求到负载均衡软件的IP地址时,负载均衡软件会根据负载均衡算法选择一个服务器来处理该请求。负载均衡软件会监控服务器的性能和负载情况,并根据这些信息来选择服务器。一旦服务器处理完请求并返回响应,负载均衡软件会将响应转发给客户端。

3.由DNS来实现负载均衡:

优点:DNS实现负载均衡的优点在于简单易行,扩展性好,无需在服务器上作任何配置。
原理:DNS服务器会给一个主机配备多个ip地址,当用户访问时,DNS服务器会随机分配一个ip地址进行访问同时DNS还可以根据不同地域进行就近分配从而缩短通信的距离,提高网站的请求效率。

缺点:由于DNS是多级缓存所以可以会因为缓存而导致IP变更不及时从而影响负载均衡的效果

4.负载范围:

二层负载:二层负载均衡(Layer 2 Load Balancing)是一种基于网络第二层(数据链路层)的负载均衡技术。它通过在网络第二层对流量进行分发,将请求分发到不同的服务器上,以实现负载的均衡和优化。当客户端发送请求到负载均衡器的IP地址时,负载均衡器会根据负载均衡算法选择一个服务器来处理该请求。负载均衡器会查看请求中的目标MAC地址,并根据该地址来选择服务器。一旦服务器处理完请求并返回响应,负载均衡器会将响应转发给客户端。

三层负载:三层负载均衡(Layer 3 Load Balancing)是一种基于网络第三层(网络层)的负载均衡技术。它通过在网络第三层对流量进行分发,将请求分发到不同的服务器上,以实现负载的均衡和优化。当客户端发送请求到负载均衡器的IP地址时,负载均衡器会根据负载均衡算法选择一个服务器来处理该请求。负载均衡器会查看请求中的IP地址和端口号,并根据这些信息来选择服务器。一旦服务器处理完请求并返回响应,负载均衡器会将响应转发给客户端。

四层负载:四层负载均衡(Layer 4 Load Balancing)是一种基于网络第四层(传输层)的负载均衡技术。它通过在网络第四层对流量进行分发,将请求分发到不同的服务器上,以实现负载的均衡和优化。当客户端发送请求到负载均衡器的IP地址和端口号时,负载均衡器会根据负载均衡算法选择一个服务器来处理该请求。负载均衡器会查看请求中的IP地址、端口号和协议类型(如TCP或UDP),并根据这些信息来选择服务器。一旦服务器处理完请求并返回响应,负载均衡器会将响应转发给客户端。

七层负载:七层负载均衡(Layer 7 Load Balancing)是一种基于网络第七层(应用层)的负载均衡技术。它通过在网络第七层对流量进行分发,将请求分发到不同的服务器上,以实现负载的均衡和优化。七层负载均衡的工作原理是,当客户端发送请求到负载均衡器的IP地址和端口号时,负载均衡器会根据负载均衡算法选择一个服务器来处理该请求。负载均衡器会查看请求中的应用层信息,如URL、Cookie、HTTP头等,并根据这些信息来选择服务器。一旦服务器处理完请求并返回响应,负载均衡器会将响应转发给客户端。

 

5.相关算法(算法的具体实现见下一篇文章)

轮询,随机,一致性hash,最小连接数

标签:负载,请求,计算机网络,均衡,均衡器,服务器,客户端
From: https://blog.csdn.net/weixin_74968157/article/details/139302340

相关文章

  • nginx负载均衡配置详解
    Nginx的负载均衡功能是通过upstream模块来实现的,允许将客户端的请求分发到多个后端服务器,以达到分散负载、提高系统稳定性和响应速度的目的。下面是一些关于Nginx负载均衡配置的详细说明:1.定义UpstreamBlock首先,在Nginx配置文件(通常是/etc/nginx/nginx.conf或者......
  • 计算机网络的网络拥塞
    1.什么是网络拥塞:对网络中的某一资源的需求超过了资源所能提供的可用部分,网络性能就要变坏;这种情况就叫拥塞(网络资源包括带宽,交换节点中的缓存和处理机等),拥塞会导致网络的性能随着负荷的增大而下降。所以如何减少拥塞是网络重中之重的问题。2.TCP拥塞控制算法:以下算法都是建......
  • 《计算机网络微课堂》5-9 TCP报文段的首部格式
    本节课我们介绍TCP报文段的首部格式。在之前的课程中我们曾介绍过,为了实现可靠传输,TCP采用了面向字节流的方式,如图所示TCP将应用进程交付下来的应用报文看作是字节流,存入TCP发送缓存中,但TCP在发送数据时是否发送缓存,取出一部分或全部字节,并给其添加一个首部使之成为TCP......
  • 《计算机网络微课堂》5-8 TCP的运输连接管理
    从本节课开始,我们将分两次课来介绍TCP的运输连接管理。5.8.1TCP的连接建立TCP是面向连接的协议,它基于运输连接来传送TCP报文段TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程TCP运输连接有以下三个阶段第一个阶段是建立TCP连接,也就是通过......
  • 《计算机网络微课堂》5-7 TCP 可靠传输的实现
    本节课我们介绍TCP可靠传输的实现。TCP基于以字节为单位的滑动窗口来实现可靠传输。我们来举例说明,这是因特网上的两台主机,他们之间已经建立了一个TCP连接,为了简单起见,我们假定数据传输只在一个方向进行,换句话说,发送方给接收方发送TCP数据报文段,接收方给发送方发送相应的......
  • 《计算机网络微课堂》5-6 TCP超时重传时间的选择
    本节课我们介绍TCP超时重传时间的选择,超时重传时间的选择是TCP最复杂的问题之一。我们来举例说明,假设主机A和B是因特网上的两台主机,他们之间已经建立了TCP连接,纵坐标为时间,现在主机A给主机B发送TCP数据报文段0,并记录下当前的时间。主机B收到后给主机A发送......
  • 《计算机网络微课堂》5-5 TCP的拥塞控制
    本节课我们介绍TCP的拥塞控制,首先来看拥塞控制的基本概念:在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞在计算机网络中的链路容量,交换节点中的缓存和处理机等都是网络的资源,若出现拥塞而不进行控制,整个网络的吞吐量......
  • 《计算机网络微课堂》5-4 TCP的流量控制
    本节课我们介绍TCP的流量控制:一般来说我们总是希望数据传输的更快一些但如果发送方把数据发送的过快,接收方就可能来不及接收,这就会造成数据的丢失所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收利用滑动窗口机制,可以很方便的在TCP连接上实现对发送方的......
  • 《计算机网络微课堂》5-3 UDP和TCP的对比
    本节课我们将从几个方面对比UDP和TCP。UDP和TCP是TCP/IP体系结构运输层中的两个重要协议,如图所示,这是我们之前课程中介绍过的TCP/IP体系结构,它的运输层有两个非常重要的协议UDP和TCP。在使用TCP/IP体系结构的网络通信中,这两个协议的使用频率仅次于往基层的IP协......
  • 速通期末之计算机网络——1.计网概述
    计算机网络概述定义:将地理位置不同的独立的计算机,通过通信线路连接,实现资源共享组成:资源子网(提供资源)&&通信子网(提供网络节点和线路)类型:拓扑:星型,树形,总线型,环型,网状范围:局域网(LAN),城域网(MAN),广域网(WAN)传输方式:有线网络,无线网络体系结构:传输方式按传输方向:单工(只能单方向......