4.1 负载均衡概述

业内讨论网络负载均衡器的时候,负载均衡器(load balancer)和代理(proxy)两个术语经常无差别混用,本文也将沿用这种惯例,认为二者整体上对等[1]

图4-1 负载均衡架构

如图 4-1 所示的负载均衡高层架构图,若干客户端(client)正在访问若干后端服务(real server),中间的负载均衡器(load balancer)完成以下功能:

  • 服务发现:系统中哪些后端可用、它们的地址是什么(负载均衡器如何能够联系上它们)。
  • 健康检查:哪些后端是健康的,可以正常接收请求。
  • 负载均衡:用哪种算法来均衡请求至健康的后端。

负载均衡使用得当可以给分布式系统带来很多好处:

  • 命名抽象:客户端可以通过预设的机制访问 LB(包括内置库、众所周知的 DNS/IP/port),域名解析工作交给 LB,这样每个客户端就无需知道每个后端(通过服务发现)。
  • 容错:通过健康检查和多种算法,LB 可以将请求有效地路由到负载过高的后端 。这意味着运维人员可以从容地修复异常的后端。
  • 成本和性能收益:分布式系统的网络很少是同构的,系统很可能跨多个网络 zone 和 region。在每个 zone 内部,网络的利用率相对较低;zone 之间利用率经常达到上限。智能负载均衡可以最大限度地将请求流量保持在 zone 内部,既提高了性能(延迟降低),又减少了整体的系统成本(减少跨 zone 带宽及光纤成本)。

  1. 严格地讲并非所有代理都是负载均衡器,但绝大多数代理都有负载均衡功能。 ↩︎

总字数:497
Last Updated:
Contributors: isno