运维 | 四层和七层负载均衡介绍

关注: CodingTechWork

负载均衡

负载均衡

负载均衡介绍

概念

  1. 负载均衡是建立在现有的网络结构之上,提供一种廉价且透明的方式进行网络设备和服务器带宽的扩展,从而增加吞吐量,加强应用服务的数据处理能力,有效提高网络的灵活性和可用性。
  2. 负载均衡重点在于“均”,由原来的单个节点承接流量,变成多个节点分担流量,减少请求响应时间,提高应用程序的可用性和可伸缩性。

分类

根据采用的设备对象区分
  1. 软件负载均衡
  2. 硬件负载均衡
根据OSI模型的位置区分
二层负载均衡(mac地址)

数据链路层,使用虚拟mac地址方式,外部请求流量经过虚拟mac地址,负载均衡收到流量请求后分配后端实际的mac地址进行响应。

三层负载均衡(ip地址)

网络层,使用虚拟ip地址方式,外部请求流量经过虚拟ip地址,负载均衡收到流量请求后分配后端实际的ip地址进行响应。

四层负载均衡(tcp)

传输层,使用ip+port接收外部流量请求,转发到对应的机器上。

七层负载均衡(http)

应用层,使用虚拟的url或ip地址接收外部流量请求,转发到对应的处理服务器。

协议分层

常用分层

协议分层

OSI模型分层

  1. 应用层:对软件提供接口以使程序能使用网络服务,如事务处理程序、文件传送协议和网络管理等。(HTTP、Telnet、FTP、SMTP)
  2. 表示层:程序和网络之间的翻译官,管理数据的解密加密数据转换、格式化和文本压缩。(JPEG、ASCII、GIF、DES、MPEG)
  3. 会话层:负责在网络中的两节点之间建立和维持通信,以及提供交互会话的管理功能。(RPC、SQL、NFS)
  4. 传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。(TCP、UDP、SPX)
  5. 网络层:将网络地址(ip地址)翻译成对应物理地址(网卡地址),并决定如何将数据从发送方路由到接收方。(IP、ICMP、IGMP、IPX、ARP、RARP)
  6. 数据链路层:物理地址寻址、数据的成帧、流量控制、数据的检错、重发。(IEEE 802.3/.2、HDLC、PPP、ATM)
  7. 物理层:物理连网媒介,如电缆连线连接器。(RS232、V.35、RJ-45、FDDI)

四层负载均衡

四层负载均衡

介绍

  1. 四层负载均衡是基于ip+port的负载均衡。
  2. 四层是基于三层负载均衡,发布三层的ip地址(虚拟ip),再加上四层的端口号,从而决定哪些流量需要做负载均衡。
  3. 四层负载均衡器也称为四层交换机,分析IP层及TCP/UDP层,但是无法解析应用层协议。

原理

  1. 通过ip+port决定负载均衡的去向。
  2. 对流量请求进行NAT处理,转发至后台服务器。
  3. 记录tcp、udp流量分别是由哪台服务器处理,后续该请求连接的流量都通过该服务器处理。

示例

  1. 外部发送tcp请求进入负载均衡设备。
  2. 负载均衡设备接收到第一个来自客户端的SYN请求,选择后台服务器,将报文中的目标IP地址进行修改(修改为转发后的后台服务器),转发到该服务器。
  3. tcp三次握手进行客户端和服务器的连接。

产品

  1. F5:硬件负载均衡器,成本较高。
  2. Nginx:轻量级四层负载均衡器,可缓存。(nginx四层是通过upstream模块)
  3. Haproxy:模拟四层转发。
  4. lvs:重量级四层负载均衡器。

七层负载均衡

七层负载均衡

介绍

  1. 七层负载均衡器是基于虚拟的url或主机ip的负载均衡。
  2. 七层负载均衡在于内容的交换,即应用层报文内容的交换解析。
  3. 七层负载均衡器也称为七层交换机,支持四层负载均衡器的功能,且可分析应用层信息,如HTTP协议、URI、Cookie等信息。

原理

  1. 通过虚拟url或主机ip进行流量识别,根据应用层信息进行解析,决定是否需要进行负载均衡。
  2. 代理后台服务器与客户端建立连接,如nginx可代理前后端,与前端客户端tcp连接,与后端服务器建立tcp连接。

产品

  1. Nginx:基于http协议(nginx七层是通过proxy_paas)
  2. Haproxy:七层代理,会话保持、标记、路径转移等。

四层和七层的区别

  1. 分层位置:四层负载均衡在传输层及以下,七层负载均衡在应用层及以下。
  2. 性能:四层负载均衡架构无需解析报文消息内容,在网络吞吐量与处理能力上较高;七层可支持解析应用层报文消息内容,识别URL、Cookie、HTTP header等信息。
  3. 原理:四层负载均衡是基于ip+port;七层是基于虚拟的URL或主机IP等。
  4. 功能类比:四层负载均衡类似于路由器;七层类似于代理服务器。
  5. 安全性:四层负载均衡无法识别DDoS攻击;七层可防御SYN Cookie/Flood攻击

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3+java开发组队功能

Vue3java开发系统组队功能 需求分析 创建用户可以创建一个队伍(一个房间队长),设置队伍人数,队伍名称(标题),描述,超时时间。搜索加入,用户可以加入未满的队伍&#xf…

开关电源低温启动测试条件是什么?如何测试开关电源?

开关电源作为常用的一种电源供应器被广泛应用在各大领域,同时也被用在各种不同的环境温度下工作。因此在开关电源测试中,温度测试是评估其性能、可靠性、稳定性的重要指标。低温启动测试就是检测低温存储环境对开关电源性能的影响,判断开关电…

10.点赞 + 我收到的赞

1.点赞 点赞:支持对帖子、评论点赞;第1次点赞,第2次取消点赞首页点赞数量:统计帖子的点赞数量详情页点赞数量:统计点赞数量、显示点赞状态 1.1 生成 redis 工具类 将数据存入到 redis 中,以 key 为关键&…

万人拼团团购小程序源码系统+拼团设置+拼团管理 附带完整的搭建教程

随着互联网的快速发展,电子商务和社交电商的兴起,团购作为一种高效的营销策略和消费方式,受到了广大消费者的热烈欢迎。在此背景下,我们开发了一款基于微信小程序的万人拼团团购系统,旨在为用户提供一种更加便捷、高效…

区域人员超限AI算法的介绍及TSINGSEE视频智能分析技术的行业应用

视频AI智能分析已经渗透到人类生活及社会发展的各个方面。从生活中的人脸识别、停车场的车牌识别、工厂园区的翻越围栏识别、入侵识别、工地的安全帽识别、车间流水线产品的品质缺陷AI检测等,AI智能分析技术无处不在。在某些场景中,重点区域的人数统计与…

Leetcode算法之哈希表

目录 1.两数之和2.判定是否互为字符重排3.存在重复元素I4.存在重复元素II5.字母异位词分组 1.两数之和 两数之和 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> hash;for(int i0;i<nums.si…

深信服防火墙设置应用控制策略(菜鸟必看)

PS&#xff1a;前几天发布了关于深信服防火墙路由部署的流程&#xff1a;深信服防火墙路由模式开局部署-手把手教学&#xff08;小白篇&#xff09;-CSDN博客 昨天晚上有csdn的朋友联系我&#xff0c;说有一个关于ACL访问的问题要帮忙看一下 解决了以后&#xff0c;写个大概的…

数字人透明屏幕是如何工作的?

数字人透明屏幕是一种令人兴奋的科技产品&#xff0c;它结合了人脸识别、全息影像技术以及透明屏幕&#xff0c;为人们带来了全新的互动体验。本文将详细介绍数字人透明屏幕的工作原理以及其应用场景。 工作原理 数字人透明屏幕的工作原理主要包括人脸识别和全息影像技术。人脸…

U-boot(六):命令体系,环境变量,iNand/SD卡驱动

本文主要探讨210的uboot命令体系&#xff0c;黄金变量,iNand/SD卡驱动相关知识。 命令体系 uboot命令体系 位置:uboot/common/ 参数:uboot命令支持传递参数(argc,argv) 函数:xxx命令的实现算数为do_xxx /** Use puts() inst…

不要被各种专业术语吓倒

有一个东西&#xff0c;是如此奇妙&#xff0c;今天我们需要讲讲。 在不同的函数中&#xff0c;这个东西有着不同的名字&#xff0c;但实际它都是同一个东西。 例如&#xff0c; RegisterWaitForSingleObject 这个 API&#xff0c;它的原型如下&#xff1a; BOOL RegisterWai…

第15关 K8s HPA:自动水平伸缩Pod,实现弹性扩展和资源优化

------> 课程视频同步分享在今日头条和B站 大家好&#xff0c;我是博哥爱运维&#xff0c;这节课带来k8s的HPA 自动水平伸缩pod&#xff08; 视频后面有彩蛋 : ) &#xff09;。 我们知道&#xff0c;初始Pod的数量是可以设置的&#xff0c;同时业务也分流量高峰和低峰&a…

Redis实战命令

实战命令 单值缓存 set key value get key 对象缓存 &#xff08;1&#xff09;set user:1 value(json格式) &#xff08;2&#xff09;mset user:1:name junfeng user:1:age 18 mget user:1:name user:1:age 分布式锁 分布式锁解决了什么问题&#xff1f; 分布式锁解…