一、网络协议:应用层

  • 七层负载均衡主要工作在网络七层ISO协议的第七层,即应用层。由于在应用层主要是处理对应的应用层协议的相关数据,如HTTP协议,而无法操作传输层TCP连接相关细节,故在七层负载均衡当中,负载均衡器主要是基于应用层协议的相关数据来进行请求转发,如对于HTTP协议,则主要是基于HTTP的Header头部信息、URL信息、Cookies等信息来进行集群节点的选择。由于负载均衡器需要解析应用层协议的相关数据,然后进行请求转发,所以CPU资源开销会较大。七层负载均衡的典型实现是Nginx。

二、与负载均衡器的连接建立

  • 其次,对于七层负载均衡的负载均衡器而言,由于无法做到与四层负载均衡一样修改TCP连接的目标IP和端口号,所以客户端需要首先与负载均衡器建立一个TCP连接,然后负载均衡器再与选中的集群节点建立TCP连接,所以总共需要建立两个TCP连接。
  • 该客户端与该集群节点的后续请求和响应的相关数据都需要经过负载均衡器来传输,所以负载均衡器需要处理所有的数据传输,工作负载较高,性能较低。工作过程如下图所示:

三、与四层负载均衡比较

  • 相对于四层负载均衡,在七层负载均衡的实现中,由于负载均衡器需要对应用层协议数据进行解析,所以CPU开销较高。并且需要中转客户端与服务节点的数据传输,所以整体性能和吞吐量相对较低。
  • 不过好处是可以更加灵活和智能地利用应用层协议的数据进行请求转发,如基于集群节点的最少连接数,最小响应时间等选中对应的一个集群节点来进行请求的动态转发。除此之外,还可以对请求和响应的数据内容进行修改,如压缩和加密等。

Nginx七层负载均衡原理解析相关推荐

  1. 网络七层协议_Nginx七层负载均衡原理解析

    一.网络协议:应用层 七层负载均衡主要工作在网络七层ISO协议的第七层,即应用层.由于在应用层主要是处理对应的应用层协议的相关数据,如HTTP协议,而无法操作传输层TCP连接相关细节,故在七层负载均衡 ...

  2. FastDFS蛋疼的集群和负载均衡(十五)之lvs四层+Nginx七层负载均衡

    ###Interesting things lvs+nginx的拓扑图 准备环境,基于上一篇[Diary Report 2018-1-3]关于FastDFS蛋疼的集群和负载均衡(十三)之LVS-DR环 ...

  3. Nginx七层负载均衡配置

    Nginx七层负载均衡 Nginx要实现七层负载均衡需要用到proxy_pass代理模块配置.Nginx默认安装支持这个模块,我们不需要再做任何处理.Nginx的负载均衡是在Nginx的反向代理基础上 ...

  4. Nginx七层负载均衡的案例

    负载均衡案例 对所有请求实现一般轮询规则的负载均衡 upstream backend{server 192.168.200.146:9001;server 192.168.200.146:9002;s ...

  5. 四层和七层负载均衡的特点及常用负载均衡Nginx、Haproxy、LVS对比

    一.四层与七层负载均衡在原理上的区别 图示: 四层负载均衡与七层负载均衡在工作原理上的简单区别如下图: 概述: 1.四层负载均衡工作在OSI模型中的四层,即传输层.四层负载均衡只能根据报文中目标地址和 ...

  6. 七层负载均衡 nginx

    七层负载均衡 简单解说: ============================================================== 一.集群的分类:(cluster) 1.高可用集 ...

  7. l4 l7 代理_什么是四层(L4 proxy)和七层负载均衡(L7 proxy)?区别是什么? 翻译自Nginx官网...

    阅读前的小说明: 由于工作需要,本人正在研究微服务架构.而微服务的服务网格( Service Mesh )架构中,需要选择一种 proxy 作为每个微服务之间通讯的代理.因此为了定夺微服务中常用的两种 ...

  8. nginx的七层负载均衡

    目录 1.负载均衡介绍 四层负载均衡 七层负载均衡 四层和七层的区别 2.nginx的配置文件 3.实验 测试 1.负载均衡介绍 四层负载均衡 所谓四层负载均衡是指OSI七层模型中的传输层, 那么传输 ...

  9. 常见的服务器集群负载均衡技术:二三四七层负载均衡,DNS、LVS、F5、nginx负载均衡

    服务器集群负载均衡技术 LB:load balance负载均衡器.有时也叫做director. DNS负载均衡 DNS负载均衡,最基础的是轮询方式,循环返回不同的服务器IP地址.可以同时返回多个服务器 ...

最新文章

  1. apache mysql 连接数 winnt,APACHE PHP MYSQL PHPMYADMIN超详细配置教程
  2. Introduction to the Trusted Services Project
  3. Windows 中进程的相关操作
  4. unc 隐藏共享文件夹_你真的了解任务栏吗?win10任务栏居然隐藏了这么多小窍门...
  5. python编程之如何判断某个元素在不在列表里面
  6. 经典面试题(16):以下代码将输出的结果是什么?
  7. ubuntu虚拟机安装Gitlab后出现“Whoops, GitLab is taking too much time to respond.”
  8. CTR学习笔记代码实现1-深度学习的前奏LR-FFM
  9. nginx ---- nginx服务器版本升级和新增模块
  10. 计算机网络知识学习(核心:网络协议)-- 运输层
  11. C语言大作业-车辆信息管理系统
  12. ASP.NET操作EXCEL 合并单元格 大全
  13. python中死循环有用吗_Python里是否存在死循环
  14. 网际风客户端版本更新历史
  15. git push遇到failed to push some refs to 问题解决
  16. jq 下拉列表选中事件_JQuery select各种事件
  17. BestCoder Round #86 HDU 5804,HDU 5805,HDU 5806,HDU 5807
  18. Python中flask_sqlalchemy的使用
  19. 拍立淘-以图搜图中的图像搜索算法
  20. 机器学习(六)——高斯判别法(GDA)

热门文章

  1. 发射明亮绿色荧光钙钛矿纳米复合薄膜/MoS2/CsPbBr3二硫化钼钙钛矿量子点
  2. AI入门级的开发技巧:人脸检测的4种常见方法以及优缺点对比
  3. Unicode 标准新增5个行星符号
  4. as follows ,as follow following
  5. 什么是类和对象?看完这篇就知道
  6. 【轻笔记·1】关于磁盘压缩卷如何查看压缩进度
  7. 欧盟发射伽利略计划第二颗试验卫星
  8. descriptor理解和例程
  9. nin神经网络_NIN网络解析
  10. Excel通过单列区域对比找到相同值进行对比查看