首页 > 其他分享 >大流量下负载均衡普遍策略

大流量下负载均衡普遍策略

时间:2024-10-27 16:59:09浏览次数:3  
标签:负载 七层 流量 四层 均衡 IP 应用层

大流量下负载均衡普遍策略

负载均衡种类

网络层次结构划分:

【OSI七层网络模型】                 【ICP/IP四层网络模型】                  【传输数据名称】
==============================================================================================
                [七层]
[应用层]        ------->        |                               |      ------> (消息报文 `Message-Data`)
[表示层]        ------->        | 应用层 {HTTP/HTTPS/DNS/FTP/..}|      ------> (表示数据 `Presentation-Data`)
[会话层]        ------->        |                               |      ------> (会话数据 `Session-Data`)

                [四层]
[传输层]        ------->        | 传输层 {TCP/UDP}|                    ------> (段`Segments`/数据报 `User-Datagram`)

[网络层]        ------->        | 网络层 {ARP/IP/ICMP}|                ------> (数据包 `Packets`)

[数据链路层]    ------->        | 数据链路层   |                        ------> (帧 `Frames`)
[物理层]        ------->        |             |                        ------> (比特 `Bits`)

二层负载均衡(数据链路层)

用于局域网内部,提供虚拟 IP 地址,虚拟 MAC 地址接收数据,再流量进行分发到真正的 MAC 主机实例上,最后 MAC 主机直接响应用户
相关用法:

  • 以太网链路聚合
    • 以太网链路聚合 多条以太网物理链路捆绑在一起成为一条逻辑链路 从而实现增加链路带宽的目的
    • 链路聚合控制协议:LACP(Link Aggregation Control Protocol)
    • 增加链路带宽,链路互相动态备份
  • PPP 捆绑技术
    • 将多个物理链路合并或者捆绑成一个大逻辑链路的机制
    • 增加带宽,减少延时,线路备份

优缺点:
效率高
Client (请求某 IP) => MAC LB (二层负载和真实服务器 IP 相同,经过负载修改真正 MAC 地址) => Server1 (服务集群:明确的 MAC 地址) => Client (直接响应)
不能跨子网
由于提供虚拟 MAC,再经过负载均衡器后,修改真实的 MAC 地址,这表明负载均衡器和真实服务器是二层可达

三层负载均衡(网络层)

外部对虚拟的 IP 地址请求,负载均衡接收后分配后端实际的 IP 地址响应,不同机器不同的 IP。
相关用法:

  • OSPF
  • RIP

优缺点:
可以跨子网

四层负载均衡 (传输层)

四层负载均衡,也称之为四层交换机,就是三层 VIP + 四层 PORT,来进行路由转发分配到真实的服务器。

四层负载均衡工作在 OSI 模型的传输层,主要是 TCP/UDP 协议,这两种协议中除了包含源 IP、目标 IP 以外,还包含源端口号及目的端口号。通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

主要基于 TCP 协议的负载均衡,通过 IP + PORT 来进行转发
转发模式:
DR Direct Routing
三角传输:通过修改 MAC 地址,让流量经过二层转发到达应用服务器
优点:高效,应用服务器直接把应答响应给到客户端,不需要经过负载均衡
缺点:依赖于二层负载,需要在同一个局域网内,所有应用服务器统一对外需要配置 VIP
NAT Network Address Translation
修改数据包的目的 IP 地址,让流量到达应用服务器,应用服务器处理完毕后,仍然需要让响应回到负载均衡器进行 源 IP 改成 VIP 才能让客户端识别出来
优点:应用服务器无需配置 VIP
缺点:负载均衡器需要以网关的形式存在,流量流入流出都要经过,必须在同一个局域网内
TUNNEL
源设备和目标设备之间建立一条虚拟通道,将数据包封装在通道中传输,类似 DR,但是需要支持 Tunnel
FULLNAT
可以摆脱局域网的限制

七层负载均衡 (应用层)

七层负载均衡,也称之为七层交换机,七层在四层上面,所以七层一般来说也是支持四层负载。除了根据 IP+PORT 来进行负载分流,也能通过 HOST、URL、Header 等进行分配。

七层负载均衡工作在 OSI 模型的应用层,应用层协议较多,常用 HTTP、DNS 等。七层负载就可以基于这些协议来负载。负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接 (三次握手) 后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。

四层和七层的负载均衡区别

  • OSI 网络模型的层级不同
  • 四层负载对应传输层
  • 七层负载对应应用层

TCP 连接建立

  • 四层负载,本身充当路由转发作用,在接收到客户端的流量以后通过修改数据包的地址信息将流量转发到后端服务器 ,只需要建立一次 TCP 连接 , 客户端直接和真实后端服务器连接
  • 七层负载,充当中间人代理作用,七层负载均衡会跟客户端建立一层完整的连接将应用层的请求流量解析出来,再根据调度均衡算法选一台应用服务器并与之建立连接,需要建立两次 TCP 连接

灵活性

  • 四层负载,仅支持网络层的转发,不解析用户请求内容
  • 七层负载,从应用层可以解析用户请求内容,从而进行不同的处理
    效率
  • 四层负载,更加底层高效
  • 七层负载,相对来说没有四层那么高效,但是功能更加丰富

具体代表协议

  • 四层负载均衡:IP、MAC
  • 七层负载均衡:HTTP、DNS

单机房

Nginx应用层负载:对于某一类应用而言,一般来讲是会有多个应用实例的。为了将流量分散到不同的应用实例,就需要进行负载均衡策略,可以使用nginx在应用层完成负载均衡。

DB负载:对于传统的有状态服务而言,会连接后台数据库,如果所有的应用实例都连接同一个db,那么db最后就会成为性能瓶颈。常用的方式就是借助于数据库代理进行分库、分表。数据库代理一般有应用端和数据库端的数据库代理,比如以应用端数据库代理为例,使用uid进行分库。

对于Nginx而言,nginx本身虽然具有高吞吐的特性,可以处理大量的请求,但是只靠nginx进行负载均衡,在超高流量下依然还是可能扛不住,对于nginx本身也需要加一层负载。一般而言可以使用lvs进行负载均衡。

LVS不同于nginx,LVS工作于七层中的四层,可以有更强大的吞吐量,扛百万级并发,但是再更高的流量下,单纯一个LVS依然还是可能成为性能瓶颈,例如对于微信抖音这种日常可能亿级别并发的,但就一个LVS还是扛不住的。LVS也需要负载,这时候借助于底层路由进行负载。

整体来讲就是:

底层route负载 -> LVS四层负载 -> nginx七层负载 ->应用本身 -> DB负载

多机房

多机房之间就需要使用DNS进行负载均衡了

标签:负载,七层,流量,四层,均衡,IP,应用层
From: https://www.cnblogs.com/cirth9/p/18508618

相关文章

  • 1024程序员节快乐——华为静态路由实现路由负载分担实验案例
    目录静态路由实现路由负载分担静态路由简介配置注意事项组网需求配置思路操作步骤配置文件静态路由实现路由负载分担实验组网图形图1 配置静态路由实现路由负载分担组网图 静态路由简介配置注意事项组网需求配置思路操作步骤配置文件静态路由简介静态路......
  • 深度学习Python停车场智能车牌识别系统opencv流量费用时间AI源码
    随着智能交通技术的发展,停车场智能车牌识别系统逐渐成为现代停车管理的重要工具。该系统利用深度学习和计算机视觉技术,实现对车辆车牌的自动检测与识别,从而提高停车场的管理效率和用户体验。系统架构与功能模块车牌检测:系统首先利用目标检测算法(如YOLO或FasterR-CNN)对停车......
  • 【流量控制】之创建和管理路由表
    当您需要定制化管理网络流量以满足特定的业务要求时,您可以通过路由表来精确控制网络流量的目的地。创建自定义路由表登录专有网络管理控制台。在左侧导航栏,单击路由表。在顶部菜单栏,选择要创建自定义路由表的地域。在路由表页面,单击创建路由表。在创建路由表页面,根据以下......
  • Kimi+豆包,萌宠表情包5分钟轻松制作,可爱萌化了,还愁流量吗?
    大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300+款以上的AI应用工具。关注科技及大模型领域对社会的影响10年+。关注我一起驾驭AI工具,拥抱AI时代的到来。AI工具集1:大厂AI工具【共23款】,一次性奉上,今天是百度和阿里AI工具集2:大厂AI工具【共12款】,......
  • (49)MATLAB实现迫零均衡器原理与代码
    文章目录前言一、迫零均衡器设计说明二、迫零均衡器MATLAB源代码1.函数说明2.代码实现3.辅助函数前言使用MATLAB实现迫零均衡器。给出完整的MATLAB设计源代码。一、迫零均衡器设计说明理想的迫零均衡器有无限多个抽头权系数,是不能实现的,本文考虑有2M+1个抽头权......
  • wordpress接入腾讯云COS,50G月免费流量
    对象存储COS是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持HTTP/HTTPS协议访问的分布式存储服务。腾讯云COS的存储桶空间无容量上限,无需分区管理,适用于CDN数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景,适用于网站需要实时访问、频繁访......
  • go微服务介绍【负载均衡,主从数据库,微服务架构】【实现了:高并发,语言之间互通】
    1.go单体架构程序一天访问量5万以下没问题2.使用负载均衡:单体架构的程序部署在多台服务器,可实现每天几十万的访问量3.如果是几百万或上前万的访问量,数据库也需要扩展,用到主从数据库4.当每天有上亿访问量,或者更高并发量的时候,上面的方法就有点力不存心了,这个时候我们就可以使......
  • 全面了解 NGINX 的负载均衡算法
    NGINX提供多种负载均衡方法,以应对不同的流量分发需求。常用的算法包括:最少连接、最短时间、通用哈希、随机算法和IP哈希。这些负载均衡算法都通过独立指令来定义,每种算法都有其独特的应用场景。以下负载均衡方法(IP哈希除外)适用于HTTP、TCP和UDP上游池:轮询轮询(Ro......
  • 放电消纳负载是什么
    放电消纳负载是指在电力系统中,由于各种原因产生的多余电能需要通过一定的设备和方式进行消耗的过程。这个过程通常由电力系统的调度部门来控制和管理,以确保电力系统的稳定运行。在电力系统中,发电设备(如发电机、太阳能电池板等)会产生电能,而用电设备(如电动机、照明设备等)则需要消耗......
  • 两台服务器(宝塔)配置Nginx负载搭建
    什么是负载均衡负载均衡就是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。一、准备两天服务器搭建好Nginx1、A服务192.168.0.1 B服务192.168.0.2注意了:宝塔Nginx负载必须有一个子......