2.1.4 负载均衡

负载均衡的常见的方法办法有如下几种。

1.利用DNS服务器实现负载均衡

todo DNS todo 循环 DNS 是什么?

利用“循环DNS”等技术,可以实现一个域名配置多个不同的A记录。每次查询DNS服务器时,它会以循环的方式取其中一个IP。这样,对域名的请求就被分散到多个源服务器了。这种方式实现简单,速度快,但是其缺点也很突出。首先,浏览器、操作系统、本地网络的路由器、ISP(互联网服务提供商)的DNS服务器等通常缓存DNS记录,这就导致了在实践中,流量无法按预期分配到每台源服务器。如果某客户端缓存了DNS记录,该客户端的流量全部会到达其中某一台源服务器。另外,DNS服务器也无法判断某台源服务器当前是否可用,假如某台服务器出现故障,就会有部分客户的请求失败。

https://www.cloudflare.com/zh-cn/learning/dns/glossary/round-robin-dns/

2.基于硬件的负载均衡

顾名思义,基于硬件的负载均衡,即引入新的负载均衡硬件设备,以实现在多个源服务器之间分配流量。

常见的负载均衡硬件设备有 F5 公司提供 BIG-IP 产品等。这种负载均衡的实现方式的优势是性能强,功能广。但由于硬件设备部署成本较高,所以往往在中大型企业中应用。

当然,单一的物理设备是无法工作的,负载均衡硬件设备也需要依赖其软件系统才能运行。

3.基于软件的负载均衡

相比基于硬件的方案,完全基于软件的负载均衡成本就要低很多,基于软件的负载均衡方案也是目前应用范围最广的。利用NGINX等开源工具,我们可以轻松实现一个负载均衡服务器。本书所述的网关案例,其核心功能之一就是负载均衡。后续章节会有详细叙述。

https://www.a10networks.com/glossary/how-do-layer-4-and-layer-7-load-balancing-differ/

依据工作在哪个网络分层,可以将负载均衡其分为“第四层负载均衡”和“第七层负载均衡”。

所谓的“第四层负载均衡”,其工作在 OSI (Open System Interconnect,开放式系统互联)参考模型的第四层,即“传输层”,主要使用 TCP 和 UDP 协议进行流量控制等,它不需要了解报文的实际内容。

“第七层负载均衡”工作在第七层,即“应用层”,它是在“第四层负载均衡”的基础上,利用应用层协议(如HTTP协议)的特征进行路由决策。

表现在配置方面,“第四层负载均衡”需要配置“IP+端口号”,而“第七层负载均衡”需要配置URL。

当然,一个负载均衡也可以横跨第四层和第七层。比如Nginx就是横跨第四层和第七层的。

todo

Last updated