本文将对负载均衡做一个简单介绍。
本文将主要分为以下几个部分:
- 简介
- 负载均衡和SSL
- 负载均衡和安全
- 负载均衡策略
- 使用负载均衡的好处
- 软件负载均衡和硬件负载均衡的比较
- 负载均衡类型
1,简介
负载均衡是将网络流量分发到多个后台服务的一种机制。通过负载均衡的流量分发,降低了单台服务器的负载,减少了应用的响应时间。负载均衡服务是目前各类web应用的最基础设施之一。各大云服务商,比如阿里云和腾讯云均提供了负载均衡服务。
图片引用自https://avinetworks.com/what-is-load-balancing/
负载均衡管理服务器和终端设备之间的流量。这些终端设备可能是PC、笔记本或者智能手机。服务器则可能是公司内部服务器、数据中心或者公有云计算资源。服务器可以是物理机,也可以是虚拟机。负载均衡通过对服务器进行持续的健康检查来获得服务器的健康状态。负载均衡会自动将已经宕机的服务器移除,甚至可能会在负载增加情况下触发新虚拟计算资源的创建来达到自动扩容的目的。
2,负载均衡和SSL
为了解决Http在传输时使用明文而存在的安全问题,网景公司推出了SSL(Secure Socket Layer 安全套接层),后来随着SSL的流行,IETF 将其标准化并改名为 TLS(Transport Layer Security)。所以很多地方都是将两者并称(SSL/TLS)。
Http和SSL/TLS的结合就形成了Https。
SSL已经成为用户浏览器和web应用之间进行数据加密传输的标准。在使用Https协议的情况下,负载均衡一般会负责SSL数据的解密,这样可以避免让服务器花费额外的CPU资源来负责SSL数据解密。
这样做也可能会产生一些潜在的安全风险,毕竟负载均衡和服务器之间的数据不再是加密传输,数据可能会因此被窃取或者篡改。但如果负载均衡服务和web应用服务器部署在同一个数据中心的话,这种风险其实是很小的。
对于那些对数据安全有着严格要求的业务场景,也可以考虑直接让负载均衡传递未做解密的SSL数据,而让web应用服务器自行负责SSL数据解密。
3,负载均衡和安全
随着越来越多的服务迁移到云端,负载均衡也开始扮演越来越多的安全防护角色。比如对于常见的DDOS攻击,通过合理的路由策略,负载均衡可以很容易地将DDOS攻击请求路由到一些闲置资源池,让业务服务器不受影响。
4,负载均衡策略
针对不同的业务场景,可以使用不同的负载均衡策略:
- 最少连接策略。将请求优先路由到活跃连接数最少的服务器上。这种策略非常适合服务器活跃连接数分配不均的业务场景。比如使用TCP长连接来和客户端通信就属于这类情况,每个连接的时间长短是由客户决定的,很容易导致各个服务器当前维护的活跃连接数量不均。
- 最短响应时间策略。将请求优先路由到响应时间最短的服务器上,对于web服务器比较适用。
- 轮询策略。将请求挨个分配给资源池中的每台服务器。这种策略和最少连接策略适用场景相反,用于不会有长连接的业务场景。
- IP hash。使用客户端的IP地址来确定流量分发到哪台服务器。
5,使用负载均衡的好处
负载均衡不光能够扮演网络流量警察的角色,还能提供其它重要的功能。它们可以在流量瓶颈产生之前来做一些预测,而这些预测能够帮助决策者洞悉系统内部工作情况,为决策或者自动化处理流程的制定提供依据。
在网络七层协议模型中,防火墙工作在1到3层(L1-物理层,L2-数据链路层,L3-网络层),负载均衡则处在4到7层(L4-传输层,L5-会话层,L6-表示层,L7-应用层。
- L4层负载,基于IP地址或者TCP端口做路由。
- L7层负载,基于应用层的负载。比如Http头,URI地址,SSL会话id,或者HTML数据内容。
- GSLB,提供基于地理位置的负载均衡。
6,软件负载均衡和硬件负载均衡的比较
使用软件提供的负载均衡服务和使用硬件提供的负载均衡服务目前都有大规模的应用案例。
软件负载均衡服务一般都运行在标准的x86服务器上,成本往往比硬件负载均衡设备更便宜,同时能更好适应目前流行的云端服务。
而硬件负载均衡服务则需要特殊设备支持,性能和安全性方面可能会比软件负载服务更好。
7,负载均衡类型
常见的负载均衡类型有下面几种:
SDN(software-defined networking)
SDN,即软件定义网络,是一种新兴的网络体系结构。它的核心思想是将控制和转发分离。在控制层,控制器可掌握全局网络的拓扑、节点、链路以及流信息,通过其全局掌控的功能,我们可以对网络流进行集中的管理。在数据层,交换机仅提供简单的数据转发功能,可以快速地处理匹配的数据包,适应流量日益增长的需求。两层之间采用开放的统一接口,控制器只需要通过协议标准向转发层下发规则,交换机就能快速的对数据进行处理。这种控制与转发分离的结构特点,使得对网络的流量管理更加灵活和便捷,在解决数据中心网络负载均衡问题上具有诸多的优势。
UDP
基于UDP协议的负载均衡。多用在广播或者在线游戏场景,这些场景要求速度快,但对于错误处理无要求。
TCP
基于TCP协议的负载均衡。和上面的UDP协议负载均衡相反,该类型对于异常处理和稳定性有保障。
SLB
基于服务器的负载均衡。
Geographic
基于地理位置的负载均衡。
GSLB
在全球的不同数据中心之间进行负载均衡。
Load Balancer as a Service (LBaaS)
大家平时使用的阿里云或者腾讯云负载均衡服务就属于LBaas。
参考: