L4和L7负载均衡原理和常用负载均衡架构实现

L4和L7负载均衡原理

四层负载均衡原理

所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器.TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

 

七层负载均衡原理

所谓七层负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的器选择方式,决定最终选择的内部服务器。以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更高,处理七层的能力也必然会低于四层模式的部署方式。

 

 

常用的负载均衡 实现方式

 

1、http重定向

原理:当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过http响应头信息中的Location标记来返回一个新的URL。这意味着HTTP代理需要继续请求这个新的URL,完成自动跳转。

优点:

  • 比较简单。

不足:

 

  • 吞吐率限制(主要是http重定向服务器自身的处理能力可能成为瓶颈);
  • 重定向访问深度不同。

我们需要权衡转移请求的开销和处理实际请求的开销,前者相对于后者越小,那么重定向的意义就越大,例如下载。

 

 

 

2、DNS负载均衡

 

 

原理:DNS 负责提供域名解析服务,当访问某个站点时,实际上首先需要通过该站点域名的DNS服务器来获取域名指向的IP地址,在这一过程中,DNS服务器完成了域名到IP地址的映射,同样,这样映射也可以是一对多的,这时候,DNS服务器便充当了负载均衡调度器,它就像http重定向转换策略一样,将用户的请求分散到多台服务器上,但是它的实现机制完全不同。

优点:

  • 动态DNS:在每次IP地址变更时,及时更新DNS服务器。当然因为缓存,一定的延迟不可避免;
  • 使用简单:负载均衡工作,交给DNS服务器处理,省掉了负载均衡服务器维护的麻烦;
  • 提高性能:可以支持基于地址的域名解析,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能。

不足:

 

  • 没有用户能直接看到DNS解析到了哪一台实际服务器,对服务器运维人员的调试带来了不便;
  • 策略的局限性。例如无法将HTTP请求的上下文引入到调度策略中,而在前面介绍的基于HTTP重定向的负载均衡系统中,调度器工作在HTTP层面,它可以充分理解HTTP请求后根据站点的应用逻辑来设计调度策略,比如根据请求不同的URL来进行合理的过滤和转移;
  • 可用性差:DNS解析是多级解析,新增/修改DNS后,解析时间较长;解析过程中,用户访问网站将失败;
  • 扩展性低:DNS负载均衡的控制权在域名商那里,无法对其做更多的改善和扩展;
  • 维护性差:也不能反映服务器的当前运行状态;支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载)。

 

3,反向代理负载均衡

原理:基于反向代理负载均衡的核心工作就是转发HTTP请求。反向代理处于Real Server这边,反向代理服务器提供负载均衡的功能,同时也能够管理一组Real Server,它根据负载均衡算法将请求的用户的访问转发到不同的Real Server处理,处理结果经过反向服务器返回给用户。

相比前面的HTTP重定向和DNS解析,反向代理的调度器扮演的是用户和实际服务器中间人的角色:

1)任何对于实际服务器的HTTP请求都必须经过调度器;
2)调度器必须等待实际服务器的HTTP响应,并将它反馈给用户(前两种方式不需要经过调度反馈,是实际服务器直接发送给用户)。

优点:

 

  • 调度策略丰富。例如可以为不同的实际服务器设置不同的权重,以达到能者多劳的效果;
  • 反向代理服务器可以监控后端服务器,比如系统负载、响应时间、是否可用、TCP连接数、流量等,从而根据这些数据调整负载均衡的策略;
  • 反向代理服务器可以让用户在一次会话周期内的所有请求始终转发到一台特定的后端服务器上(粘滞会话),这样的好处一是保持session的本地访问,二是防止后端服务器的动态内存缓存的资源浪费。

不足:

 

 

  • 对反向代理服务器的并发处理能力要求高,因为它工作在HTTP层面;
  • 反向代理服务器进行转发操作本身是需要一定开销的,比如创建线程,与后端服务器建立TCP连接,接收后端服务器返回的处理结果,分析HTTP头部信息,用户空间和内核空间的频繁切换等,虽然这部分时间并不长,但是当后端服务器处理请求的时间非常短时,转发的开销就显得尤为突出。例如请求静态文件,更适合使用前面介绍的基于DNS的负载均衡方式。

 

4,IP负载均衡(LVS-NAT)

原理:用地址翻译实现虚拟服务器。地址转换器有能被外域访问到的合法IP地址,它修改来自与有网络的流出包的地址。外点看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。

优点:

  • 节省IP地址,能对内部进行伪装;在内核进程完成数据分发,比在应用层分发性能更好; 
  • 支持端口映射; - RS可以使用任意操作 系统。

不足:

 

  • DIP和RIP必须在同一个网段内; 
  • RS应该使用私有地址,RS的网关必须指向DIP; 
  • 请求和响应报文都需要经过Director Server,高负载场景中,Director Server易成为性能瓶颈。

 

5,直接路由(LVS-DR)

原理 :用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此方法,控制管理的计算机接收到请求包时直接送到参与集群的节点。直接路由模式比较特别,直接路由模式则是工作在数据链路层上(二层)。DR和Real Server都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有Real Server对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的Real Server,把目的MAC地址改为Real Server的MAC并发给这台Real Server。这时Real Server收到这个数据包,和直接从客户端收到这个数据包无异,所以Real Server处理后可以直接返回给客户端。

优点:

  • 相比LVS-NAT模式,效率要高很多,因为返回给请求方的流量是不需要经过负载均衡器的;
  • RS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对RIP进行直接访问;
  • RS可以是大多数常见的操作系统。

不足:

 

  • 由于DR要对二层包头进行改换,所以DR和Real Server之间必需在一个广播域,也可以简单的理解为在同一台交换机上。

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
负载均衡是指将网络流量分发到多个服务器上,以实现请求的均衡处理。负载均衡可以分为L3、L4L7三种类型。 L3负载均衡主要工作在网络层,使用IP地址和端口号等信息进行负载均衡。L3负载均衡器可以根据源IP地址或目标IP地址进行请求转发,以实现流量的分发和负载均衡。L3负载均衡器的优点是速度快,但无法对请求进行深入的内容分析和处理。 L4负载均衡工作在传输层,主要用于TCP和UDP协议的负载均衡L4负载均衡器可以基于端口号将请求分发到不同的服务器,以实现负载均衡。常见的L4负载均衡器包括LVS和nginx。L4负载均衡器具有较好的性能和灵活性,但仅能通过端口号进行负载均衡,无法对请求的内容进行处理。 L7负载均衡工作在应用层,可以对请求的内容进行深入的分析和处理。L7负载均衡器可以根据请求的URL、HTTP头部等信息将请求分发到不同的服务器。L7负载均衡器具有较高的灵活性和功能,但由于需要对请求进行深入的处理,性能相对较低。常见的L7负载均衡器包括nginx和HAProxy等。 综上所述,负载均衡可以分为L3、L4L7三种类型,每种类型都有不同的特点和适用场景。选择合适的负载均衡器取决于具体的需求和应用场景。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [转载和积累系列 - L4负载均衡的设计与实现](https://blog.csdn.net/initphp/article/details/107927807)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值