深入了解负载均衡器

每个负载均衡器都是反向代理,但并非每个反向代理都必须是负载均衡器。
0*GFvXmdPz97bwF8vU.jpeg

问题: OSI模型是什么样的?
1*JzMQUxqHiATuQlIgyIv-xQ.png

问题: 负载均衡器的需求是什么?

答案 → 为了创建一个容错系统,使得当客户端向负载均衡器发出请求时,它可以与一个或多个后端进行通信。
1*vOM1JBF5eew1kBUQqVn1Ag.png

问题: 解释一下第4层负载均衡器是如何工作的?

答案 → 第4层负载均衡器的工作原理如下:

1.) 握手 → 第4层负载均衡器首先与后端服务器建立TCP连接。

2.) 预热 → 负载均衡器可以与后端建立多个基于TCP的连接,然后保持这些连接处于活动状态。这是为了确保每当客户端连接到负载均衡器时,它不必每次都经历连接预热过程。
1*PPN7ZcFLD0Dq3tcC3MR0fA.png

3.) 客户端连接 → 当客户端连接到第4层负载均衡器时,该连接将在负载均衡器级别具有状态,并将映射到后端服务器的任何一个连接。因此,第4层负载均衡器是有状态的。

•第4层负载均衡器只处理端口和IP地址。•数据被分段,但它不能简单地触摸数据或解析数据。•客户端发送到第4层负载均衡器的所有数据段都将最终发送到某个服务器上的一个专用连接。•如果客户端向第4层负载均衡器发送一些数据,它不能只将一个段发送到一个服务器,然后将另一个段发送到另一个服务器,因为数据将会损坏,一切都会变得糟糕。
1*2M-ThbnSszHWodd2Qnin3Q.png

问题: 第4层负载均衡器是否也充当NAT层?

答案 → 是的,第4层负载均衡器充当客户端的NAT层/网关/路由器。

请求 → 在与后端建立全新的TCP连接时,负载均衡器更改目标IP地址。客户端完全不知道这个概念。
1*OL1bja_6TdX_lNwM3lFNRA.png

响应 → 第4层负载均衡器知道,从应用连接接收到的任何内容都必须发送回带有原始客户端的这个连接。这是负载均衡器保持的映射表。
1*81o1qzX_AnXojJRpTR6prQ.png

问题: 演示从客户端到后端的基于Http的调用(Restful API调用)的例子?

答案 → 想象一下客户端向负载均衡器发送Http调用。还想象一下,这个特定的请求被分为2个段。

步骤 #1.) 请求到达负载均衡器,然后负载均衡器选择将此请求的所有段发送到某个后端服务器。
1*Fg2wFQjAtgnFXywBSN3jAg.png

步骤 #2.) 现在,假设客户端发送的是另一个段(段#3),然后将其写回同一连接。

•在这个第4层负载均衡器上没有缓冲。它只是读取并转发数据段。•第4层负载均衡器不知道HTTP。它只知道和理解TCP。传递到这个第4层负载均衡器的所有数据(无论是基于gRPC的请求还是基于套接字的连接),它都将所有这些数据视为数据段。•但是,根据客户端端的MTU和后端服务器端的MTU,负载均衡器可能会执行某种优化。它可能仅仅接收段并将该段进一步细分为多个段,反之亦然。TCP始终会尝试挤取尽可能多的性能。
1*yA7r51LdP1-YoYgsVDqIAg.png

步骤 #3.) 现在,假设同一客户端在同一连接上发起了另一个请求,那么该请求也将首先被读取,然后写回后端服务器。

步骤 #4.) 现在,假设有一位不同的客户端发起了另一个请求,然后根据负载均衡算法,该请求可能会转发到另一个后端服务器。
1*UHpCTVNkx7ynLlWrG-UMBA.png

问题: 提供L4负载均衡器的公司有哪些?

答案 → 像Radware和F5-BigIp等公司提供L4负载均衡器。

问题: L4负载均衡器的优缺点是什么?

1.) 以下是L4 LB的优点:

•这是一种简单的负载均衡策略。它只是不读取第7层的内容。•它更安全,因为它不从L7读取数据。•它与任何协议一起工作。它对协议是不可知的。

2.) 以下是L4 LB的缺点:

•它不聪明,不能与微服务一起工作。这是有粘性连接的。每个连接都没有负载均衡。尽管我们可以配置IP和端口组合,但在生产系统中不建议这样做。•如果客户端发送POST请求或发送GET请求或发送PATCH请求,L4负载均衡器对此一无所知。它只看到这些请求作为进来的数据段。•它不能支持缓存,因为它不知道要缓存什么,因为它无法读取L7层中的数据。•在L4 LB上,我们无法执行任何类似于"阻止某些用户"、"阻止某些标头"、"阻止某些身份验证方法"的操作。
1*JJurzdYjlzANK_QaLqOdwA.png

问题: 解释第7层负载均衡器是如何工作的?

答案 → 第7层负载均衡器的工作原理如下:

1.) 握手 → 第7层负载均衡器还与后端服务器建立TCP连接。

2.) 预热 → 负载均衡器可以与后端建立多个基于TCP的连接,然后保持这些连接处于活动状态。这是为了确保每当客户端连接到负载均衡器时,它不必每次都经历连接预热过程。
1*PPN7ZcFLD0Dq3tcC3MR0fA.png

3.) 客户端连接 → 当客户端连接到第7层负载均衡器时,该连接将成为特定于协议的。

•第7层负载均衡器需要理解发送到它的任何内容。•任何逻辑请求都将首先在L7-LB级别缓冲,理解它(即解密数据),解析它,然后决定将请求转发到后端服务器的其中一个。
1*zc1y_M1JUOv5tIlLaoaTdA.png

注意: 如果您希望L7 LB面向外部客户端,则:

•您的L7 LB必须具有存储在其上的证书,因为此L7 LB必须首先证明其身份。•L7 LB还必须解密数据。

问题: L7负载均衡器如何处理基于HTTP的请求?

步骤 #1.) 首先,它接收请求并将其发送到后端服务器1。
1*RCk7F963UHMyk1BbvcP8Pw.png

步骤 #2.) 接下来,假设同一客户端发送了另一个请求,然后L7 LB实际上也可以将其转发到其他后端服务器,因为L7 LB是无状态的。

问题: L7负载均衡器的优缺点是什么?

1.) 以下是L4 LB的优点:

•它提供智能的负载均衡策略。例如,如果请求是针对端点"/pictures"的,则可以将请求转发到特定的主机组,可能是Pictures微服务。•另一个例子,如果请求是针对端点GET"/comments"的,则可以将请求转发到特定的主机组,可能是评论微服务。•另一个例子,如果请求是针对端点POST"/comments"的,则它是写入密集型工作负载,那么可能转到另一个主机组,因为它具有专为此写入密集型工作负载设计的特定数据库。•因此,L7 LB非常适合微服务。•我们还可以在此L7负载均衡器上执行AuthN和AuthZ。•我们还可以缓存结果。

2.) 以下是L4 LB的缺点:

•它很昂贵,因为它要做更多的工作,比如缓冲数据,读取数据,解密数据,终止TLS连接。•它必须共享TLS证书。•它可能效率不高,实际上可能成为瓶颈,因为它正在缓冲大量数据并解析它。它可能会减慢速度。•它需要理解协议。

相关推荐
草药味儿の岁月6 分钟前
Docker镜像分层存储原理:UnionFS技术深度解析
运维·docker·容器
阳区欠4 小时前
【Linux】进程通信
linux·运维·服务器·共享内存·进程通信·system v·管道文件
may_一一4 小时前
终端SSH连接工具SecureCRT安装和连接Linux
运维·服务器·ssh
姓刘的哦5 小时前
Ubuntu环境安装
linux·运维·ubuntu
半路_出家ren5 小时前
网络安全设备介绍:防火墙、堡垒机、入侵检测、入侵防御
安全·网络安全·负载均衡·堡垒机·防火墙·网络安全设备·上网行为管理
春生黎至10056 小时前
GZ073网络系统管理赛项赛题第1套模块A:网络构建解题笔记
运维·网络
IT程序媛-桃子6 小时前
【网安面经合集】42 道高频 Web 安全面试题全解析(附原理+防御+思路)
运维·网络·安全·面试
❀͜͡傀儡师6 小时前
多台服务器上docker部署 Redis 集群
运维·服务器·redis
JCBP_6 小时前
数据结构4
运维·c语言·数据结构·vscode
Hotlogin7 小时前
多账号登录管理工具技术解析:浏览器指纹与自动化架构设计
运维·自动化