深入了解负载均衡器

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

854892bd09f8e912961cab44dcf4cb3b.jpeg
0*GFvXmdPz97bwF8vU.jpeg

问题: OSI模型是什么样的?

1d0364a74b46895c385addddb39f395b.png
1*JzMQUxqHiATuQlIgyIv-xQ.png

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

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

63320d63ef3167bd1327406a88de0107.png
1*vOM1JBF5eew1kBUQqVn1Ag.png

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

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

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

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

14d7f8b6ba6c1e049d1dce944b4cb347.png
1*PPN7ZcFLD0Dq3tcC3MR0fA.png

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

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

d7ddd0749821301b912ca50073cf3225.png
1*2M-ThbnSszHWodd2Qnin3Q.png

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

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

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

4ce070bc497ff08ac5375fc1b43d1043.png
1*OL1bja_6TdX_lNwM3lFNRA.png

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

0a4a8a9c99460abea1756ad0399aee31.png
1*81o1qzX_AnXojJRpTR6prQ.png

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

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

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

7d061715c3012b611d2a156c287ab4c8.png
1*Fg2wFQjAtgnFXywBSN3jAg.png

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

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

c8f2f1061be20d6de6b522dc21a59dcd.png
1*yA7r51LdP1-YoYgsVDqIAg.png

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

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

4a03a75b88dcc1db1a26576907d08835.png
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上,我们无法执行任何类似于“阻止某些用户”、“阻止某些标头”、“阻止某些身份验证方法”的操作。

d93486b4fbc72f85e55dd4de6b4b4802.png
1*JJurzdYjlzANK_QaLqOdwA.png

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

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

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

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

fc058176f5f0ea105bf0fecf64a0c50b.png
1*PPN7ZcFLD0Dq3tcC3MR0fA.png

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

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

ebda7058839cb02536e6ec086c4aec20.png
1*zc1y_M1JUOv5tIlLaoaTdA.png

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

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

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

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

39bb63cba272afa0eecc06110c764adb.png
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证书。•它可能效率不高,实际上可能成为瓶颈,因为它正在缓冲大量数据并解析它。它可能会减慢速度。•它需要理解协议。

5e69c89d0ac0fc98bb5eb32281465e91.png

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

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

相关文章

SpringCloud(16)之SpringCloud OpenFeign和Ribbon

一、Spring Cloud OpenFeign介绍 Feign [feɪn] 译文 伪装。Feign是一个轻量级的Http封装工具对象,大大简化了Http请求,它的使用方法 是定义一个接口,然后在上面添加注解。不需要拼接URL、参数等操作。项目主页:GitHub - OpenFeign/feign: Feign makes w…

Promethues的Agent 模式代理转发的实施教程

目录 一、为什么需要代理转发? 二、Prometheus Agent模式的实施步骤 1、升级Prometheus的版本 2、配置B服务器的配置文件 3、启动代理点B服务器的Prometheus 4、接收端C服务器的Prometheus的安装同步骤1 5、启动接收端C服务器的Prometheus 6、验证是否能够正…

CVE-2023-44313 Apache ServiceComb Service-Center SSRF 漏洞研究

本次项目基于go语言(本人不精通),虽不是java web框架了 ,但搭建web服务的框架一些思想理念却是通用的,我们由此可以得到一些蛛丝马迹....... 目录 漏洞简介 漏洞分析 漏洞复现 漏洞简介 Apache ServiceComb Servi…

【MySQL系列 04】深入浅出索引

一、索引介绍 提到数据库索引,相信大家都不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。 但到底什么是索引,索引又是如何工作的…

Stable Diffusion 模型分享:A-Zovya RPG Artist Tools(RPG 大师工具箱)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 A-Zovya RPG Artist Tools 模型是一个针对 RPG 训练的一个模型,可以生成一些 R…

sql注入 [极客大挑战 2019]FinalSQL1

打开题目 点击1到5号的结果 1号 2号 3号 4号 5号 这里直接令传入的id6 传入id1^1^1 逻辑符号|会被检测到,而&感觉成了注释符,&之后的内容都被替换掉了。 传入id1|1 直接盲注比较慢,还需要利用二分法来编写脚本 这里利用到大佬的脚…

如何使用ChatGPT创建一份优质简历

目录 第一步:明确目标和重点 第二步:与ChatGPT建立对话 第三步:整理生成的内容 第四步:注重行文风格 第五步:强调成就和量化结果 第六步:个性化和定制 第七步:反复修改和完善 总结 在现…

国家建筑装配式内装产业基地在沪成立,副主任单位优积科技协同助推绿色低碳循环发展

上海市室内装饰行业协会装配式内装产业专业委员会成立大会暨“国家建筑装配式内装产业基地”项目启动会于3月21日下午1点在上海光大酒店隆重举行。出席此次活动的包括市装协会长徐国俭,市装协党支部书记兼秘书长丛国梁,市装协装配式内装委主任顾泰昌&…

【人脸朝向识别与分类预测】基于LVQ神经网络

课题名称:基于LVQ神经网络的人脸朝向识别分类 版本日期:2024-02-20 运行方式:直接运行GRNN0503.m文件 代码获取方式:私信博主或 企鹅号:491052175 模型描述: 采集到一组人脸朝向不同角度时的图像,图像…

python 基础知识点(蓝桥杯python科目个人复习计划49)

今日复习内容:做复习题 例题1:希尔排序 题目描述: 希尔排序是直接插入排序算法的一种更高效的改进版本,但它是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出的改进方法之一: 1.插入排序在对几乎已经…

代码随想录算法训练营第四十天|343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分 链接:. - 力扣(LeetCode) 思路: 动态规划的题目虽然说是要先确定dp数组的含义,再确定递归公式,但是总感觉这两者是相辅相成的,是一起出来的,但是到此,dp数组…

kubernetes负载均衡部署

目录 1.新master节点的搭建 对master02进行初始化配置(192.168.88.31) 将master01的配置移植到master02 修改master02配置文件 2.负载均衡的部署 两台负载均衡器配置nginx 部署keepalived服务 所有node节点操作 总结 实验准备: k8s…

开源大语言模型作为 LangChain 智能体

概要 开源大型语言模型 (LLMs) 现已达到一种性能水平,使它们适合作为推动智能体工作流的推理引擎: Mixtral 甚至在我们的基准测试中 超过了 GPT-3.5,并且通过微调,其性能可以轻易的得到进一步增强。 引言 针对 因果语言建模 训练的大型语言模…

QEMU之CPU虚拟化

概述 KVM是由以色列初创公司Qumranet在CPU推出硬件虚拟化之后开发的一个基于内核的虚拟机监控器。 KVM是一个虚拟化的统称方案,除了x86外,ARM等其他架构也有自己的方案,所以KVM的主体代码位于内核树virt/kvm目录下面,表示所有CP…

9、使用 ChatGPT 的 GPT 制作自己的 GPT!

使用 ChatGPT 的 GPT 制作自己的 GPT! 想用自己的 GPT 超越 GPT ChatGPT 吗?那么让我们 GPT GPT 吧! 山姆 奥特曼利用这个机会在推特上宣传 GPTs 的同时还猛烈抨击了埃隆的格罗克。 GPTs概览 他们来了! 在上周刚刚宣布之后,OpenAI 现在推出了其雄心勃勃的新 ChatGPT…

<网络安全>《49 网络攻防专业课<第十三课 - 华为防火墙的使用(2)>

6 防火墙的防范技术 6.1 ARP攻击防范 攻击介绍 攻击者通过发送大量伪造的ARP请求、应答报文攻击网络设备,主要有ARP缓冲区溢出攻击和ARP拒绝服务攻击两种。 ARP Flood攻击(ARP扫描攻击):攻击者利用工具扫描本网段或者跨网段主机时…

eureka 简介和基本使用

Eureka 是Netflix开发的服务发现框架,是Spring Cloud微服务架构中的一部分。它主要用于微服务架构中的服务注册与发现。Eureka由两部分组成:Eureka Server 和 Eureka Client。获取更详细的信息可以访问官网,如下图: Eureka Server…

【vue】如何打开别人编译后的vue项目

文件结构如下,编译后的文件放在dist中。 dist的文件结构大约如下,文件名称随项目 1.新建app.js文件 const express require(express);const app express();const port 8080;app.use(express.static(dist));app.listen(port, () > console.log); …

【软件测试】定位前后端bug总结+Web/APP测试分析

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、Web测试中简单…

Vue监听器(上)之组合式watch

1. 定义监听器 //要监视的属性被改变时触发 watch(要监视的属性, (更改后的心值, 更改前的旧值) > {具体操作}, );//监视对象为getter的时候 //表达式内任意响应式属性被改变时触发 watch(() > return表达式, (表达式的新值, 表达式的旧值) > {具体操作} );//数组中任…