有段时间没上阿里云,突然发现阿里云把负载均衡服务升级了。原来只有一个选项,突然变成了两个,一个应用型负载均衡(alb),也就是7层交互的负载均衡;另一个就是原来的负载均衡,即四层交互的负载均衡。有点跟AWS靠齐的意思。那么,7层和4层交互的两种类型,选择哪种好呢。
所谓四层就是基于IP+端口的负载均衡,以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,即通过上述方式选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。采用4层交换的负载均衡,域名解析的时候指向的是负载均衡所在的IP地址。
所谓七层就是基于URL等应用层信息的负载均衡,也称为“内容交换”,也就是主要通过报文中的真正有意义的应用层内容,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。以常见的TCP为例,负载均衡设备如果要根据真正的应用层内容再选择服务器,只能先代理最终的服务器和客户端建立连接(三次握手)后,才可能接受到客户端发送的真正应用层内容的报文,然后再根据该报文中的特定字段,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。负载均衡设备在这种情况下,更类似于一个代理服务器。负载均衡和前端的客户端以及后端的服务器会分别建立TCP连接。所以从这个技术原理上来看,七层负载均衡明显的对负载均衡设备的要求更