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

阅读前的小说明:

由于工作需要,本人正在研究微服务架构。而微服务的服务网格( Service Mesh )架构中,需要选择一种 proxy 作为每个微服务之间通讯的代理。因此为了定夺微服务中常用的两种代理,即: Nginx 和 Envoy 如何选择,本人查阅并翻译了Nginx官网的一系列文章,以便日后参考,也方便各位参阅。希望能借此文章,与各位大佬们多多交流,谢谢。

此外,由于本人的英文功底着实较为薄弱,因此文中若如果出现部分翻译不当或翻译错误,也希望大家批评指正,不吝赐教!

负载均衡可以在OSI( Open Systems Interconnection )网络模型中的很多层次上被实现。在这里,我们将提供这个网络模型中,两种不同层次的负载均衡选择的概览。

四层负载均衡(Layer 4 Proxy)和七层负载均衡(Layer 7 Proxy)的区别

四层负载均衡( L4 load balancing ):

主要工作于处于OSI模型中间位置的传输层( transport layer ),它主要处理消息的传递,而不管消息的内容。在互联网上,TCP就是HTTP传输方式的四层协议( Layer 4 Protocol )。四层负载均衡只针对由上游服务发送和接收的网络包,而并不检查包内的具体内容是什么。四层负载均衡可以通过检查TCP流中的前几个包,从而决定是否限制路由。

七层负载均衡( L7 load balancing ):

主要工作于处于OSI模型顶层位置的应用层( application layer ),它主要处理每条消息中的真正内容。在互联网上,HTTP是网络通讯中占据主导地位的七层协议( Layer 7 Protocol )。七层负载均衡在路由网络传输时比四层负载均衡更加复杂和巧妙,特别适合像HTTP这种基于TCP传输的方式。一个七层负载均衡器终止网络传输并读取消息中的内容。它可以基于消息中内容( 比如URL或者cookie中的信息 )来做出负载均衡的决定。之后,七层负载均衡器建立一个新的TCP连接来选择上游服务( 或者再利用一个已经存在的TCP连接,通过 HTTP keepalives 的方式,见:https://www.nginx.com/blog/http-keepalives-and-web-performance/ )并向这个服务发出请求。

七层负载均衡的优势

七层负载均衡的CPU密集程度比基于包的四层负载均衡更高,但是在现代服务中却极少降低其性能。七层负载均衡能够让均衡器做更小的负载均衡决定,并且会根据消息的内容( 比如压缩和加密 )利用最优化方式做出改变。它运用缓存的方式来卸载上游服务较慢的连接,并显著地提高了性能。

一个七层负载均衡的例子

让我们来看一个简单的例子吧:用户访问一个繁忙的网站。在这个用户 session 的航向上,他或她可能会请求静态内容——比如图片或者视频,动态内容——比如新闻递送,甚至是事务型信息——比如外卖点单的状态。七层负载均衡允许均衡器依据请求自身的信息进行路由,比如被请求内容的类型。所以现在一个针对图片和视频的请求可以被路由到存储并高度优化的多媒体内容服务器上。对于事物型信息比如商品折后价,可以被路由到响应管理价格的应用服务器上。用了七层负载均衡,网络和应用的架构师可以建立一个高速调整且高度优化的、针对需求可靠且可有效延展的服务基础架构或应用递送网络。

让 Nginx Plus 助你一臂之力!

下面是收费服务 Nginx Plus 的广告,大家可以略过。

译者注。

Nginx Plus 和 Nginx 可能是负载均衡领域中最好的解决方案,它被许多高访问量的网站所使用,比如 Dropbox、Netflix 和 Zynga。全世界超过358万个网站,包括10万个最繁忙的主流网站,都可依靠着 Nginx Plus 和 Nginx 来快速、可靠、安全地传送着他们的内容。

作为一个基于软件的负载均衡器,Nginx Plus 和那些基于硬件的解决方案功能相仿,但是价格却便宜的多。Nginx Plus 中全面的七层负载均衡功能完全能够帮助你建设一个高度优化的应用传送网络。

当你将 Nginx Plus 作为一个七层负载均衡器置于你的网站或应用之前时,你就已经提高了你网站和应用的效率、可靠性和性能。 Nginx Plus 帮助你同时最大化用户满意度和你 IT 投资的回报。

翻译By 田同学

希望对您的工作学习有所帮助,谢谢。

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

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

相关文章

Linux 下的0 1 2特殊文件描述符~

最近在做项目的时候遇到的几个知识点,我觉得非常有意思,以前学Linux的时候也有接触到管道方面的,但是在应用中却基本没有遇到过。还有Linux下的几个特殊的文件描述符,用这几个文件描述符可以做很多事情,能做什么事情决…

攻防比赛_2020年度泉州市大学生网络安全攻防比赛在黎明职业大学圆满落幕

10月16日下午,作为2020年国家网络安全宣传周泉州市系列活动之一,“泉州市大学生网络安全攻防比赛”在黎明职业大学智慧教学中心成功举办并圆满落幕。此次比赛由泉州市互联网信息办公室、泉州市教育局主办,黎明职业大学和泉州市网络与信息安全…

17-9--18:了解Linux的命令格式,今天复习的已知命令和新命令

熟悉的命令: cp -r 需要复制的文件夹 复制文件夹到指定文件夹 复制文件夹到文件夹、复制文件到文件夹 cat 需要复制的文件 > > 复制到指定文件 复…

gitlab 如何关闭force push

把不允许force push的分支设置成保护分支,Push的时候就会提示不能force psuh。

camera中文版软件 ip_ip camera网络摄像机

IP Camera Viewer是一个方便可靠能够通过IP地址监控多台摄像头的软件。 需要的朋友们赶紧下载试试吧!你可以在几分钟之内设置一个免费的IP摄像监控系统, 保持在家里,办公室,停车场或任何地方,你都可以监控。同时查看多…

Ubuntu16.04通过GPT挂载硬盘

一般而言,服务器上挂载的硬盘都是比较大的,传统的对硬盘进行分区需要在终端敲sudo fdisk进行操作,但是, 当挂载的硬盘的容量大于2T的时候,是无法通过sudo fdisk进行挂载的,这个时候必须要进行GPT进行挂载&a…

Mplayer后台播放没有声音

昨天的文章,我觉得虽然不是很复杂,但是我自认为很多人应该是不懂的,不过好像阅读量不是很好,今天转发我师弟的一篇文章,我觉得这个也是大家没有注意到的。Linux 下的0 1 2特殊文件描述符~一、平台Ubuntu16.04(64位)二、…

python输出程序运行时间_叨叨 Python 性能优化工具

虽然Python是一个”慢慢的“语言,但是不代表我们对性能没有任何的追求,在程序运行过程中,如果发现程序运行时间太长或者内存占用过大,免不了需要对程序的执行过程进行一些监测,找到有问题的地方,进行优化。…

链接学习之obj文件探索

Windows的gcc环境,往官网http://sourceforge.net/project/showfiles.php?group_id2435 下载MinGW,安装,安装完毕后按照包 配置环境变量 a.在PATH的值中加入"C:\Program Files\MinGWStudio\MinGW\bin"。这是寻找gcc编译器的路径。…

跳槽并不能解决问题

周末了,聊点和离职相关的事情,上周应该有不下5个人跟我谈到跳槽离职的事,每个人的情况都有点不同,每个人我都认真给了回复,总结一下,希望大家对自己的职场有比较明确的规划,跳槽肯定是为了涨薪水…

http 请求默认时间_JMeter接口测试之HTTP请求默认值

不管是在UI级别的自动化测试还是在接口级别的自动化测试中,对公共数据数据的分离都是一种趋势,或者某种程度来说,这是自动化测试中必须要掌握的一种能力,是基本技能。这些公共数据就包含了测试地址,以及登录的账号密码…

【BZOJ1880】[Sdoi2009]Elaxia的路线 最短路+DP

【BZOJ1880】[Sdoi2009]Elaxia的路线 Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间。Elaxia和w**每天都要奔波于宿舍和实验室之间,他…

有意思的select~

前言最近在写一个小程序,也就是简单的系统调用,但是神奇的是,我用的这个系统调用刚好就阻塞了。如果你也写过应用程序,肯定也会遇到过这样的问题。后来,发现了select这个好东西,可以用来监听文件描述。sele…

cesium 页面截图_Cesium开发入门篇 | 02开发环境搭建及第一个示例

开发环境准备利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React、Vue、AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍。本次开发环境是基于Vue搭建的,需要安装(部署)的软件主要包括…

Android基础字符串String.md

问题抛出 String这个常量在我们代码中会经常被用到,那么我们了解 String stringbuffer StringBudilder三者之间的区别吗 问题解答 String 字符串常量,位于常量池stringbuffer 字符串变量 不同步适用于单线程 位于字符串缓冲区StringBudilder字符串变量 同步适用于多线程 位于字…

一个单片机ADC的挖坑填坑之旅

[导读] 本文来解析一个盆友在使用STM32采集电池电压踩过的坑。以STM32F4 的ADC属于逐次逼近SAR 型ADC为例进行分析,参考STM32F405xx Datasheet,对于如何编写ADC程序就不做描述了。先描述一下坑 采集电池电压,利用两个电阻将电池电压分压&…

centos mysql.tar.gz_centos7.2 mysql tar.gz 搭建 (亲测成功)

1、安装依赖:yum -y install libaioyum search libaio2、卸载系统自带的Mariadb数据库:rpm -qa | grep mariadbrpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64rpm -qa | grep mariadb3、创建mysql用户组和mysql用户groupadd mysqluseradd -g …

of_property_read_string 剖析~

前言今天在一个群里面看到的一个朋友提交,说of_property_read_string 这个函数有两个定义,到底是用了哪个呢?所以这篇文章就说下这个函数。函数引用的头文件引用的头文件位置在\kernel-4.4\include\linux\of.h其中一个是extern int of_proper…

欧几里得算法扩展欧几里得算法

欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设aqbr,其中a,b,q,r都是整数,则gcd(a,b)gcd(b,r),即gcd(a,b)gcd(b,a%b)。 第一种证…

mysql查询没有权限试图_MySQL迁移后提示查询view权限不足的处理

一.问题描述:开发人员反应xx物流系统mysql查询视图提示权限不足,请DBA介入处理.MariaDB [abc]> select * from c_time;ERROR 1045 (28000): Access denied for user lsa% (using password: YES)版本:mariadb 10.1.18 for centos 6.6二.问题分析&#…