10 用于 HA 和改进性能的开源负载均衡器

要实现应用程序的高可用性和性能提升,最快捷有效的方法之一便是部署负载均衡器(LB)。

一般来说,负载均衡器可以分为以下三种主要类型:

  • 硬件负载均衡器
  • 云负载均衡器
  • 软件负载均衡器

硬件负载均衡器是专用的设备,用于执行负载分配及其相关功能。一些知名的硬件LB供应商包括:

虽然成本较高,但硬件负载均衡器能提供完全的控制权。

云负载均衡器如今越来越受欢迎。

采用云LB是一种经济实惠的方式,无需投资硬件设备即可享受其全部功能。它采用按需付费的模式。以下是一些广为人知的云LB服务提供商:

云负载均衡服务的起价每月仅需约20美元。

最后一种是基于软件的负载均衡器,用户可以自行安装、管理和配置。 这类软件可以是商业的,也可以是开源/免费的。

如果您预算有限,或者想探索免费的负载均衡解决方案,那么以下内容将对您有所帮助。

Seesaw

Seesaw 是 谷歌 开发的基于 Linux 的可靠虚拟负载均衡服务器,它可以在同一网络内提供必要的负载分配。

Seesaw 使用 Go 语言编写,在 Ubuntu/Debian 发行版上运行良好。它支持任播和 DSR(直接服务器返回)技术,并且需要两个 Seesaw 节点,可以是物理节点,也可以是虚拟机。

值得注意的是,Seesaw 工作在网络第四层,因此如果您需要第七层的负载均衡,则可能需要考虑其他方案。

Kemp

Kemp 提供免费的高级应用交付控制器,Kemp 支持所有主要的虚拟机管理程序。您可以下载并在数据中心使用,也可以将其部署在 AWS 或 Azure 等云数据中心中。

Kemp 提供免费版本,同时提供了商业级的功能,其中包括:

  • 使用轮询或最少连接算法的 TCP/UDP 第 4 层负载均衡
  • 第 7 层负载均衡
  • 集成的 Web 应用程序防火墙 (WAF)
  • 内置入侵防御引擎 (IPS)
  • 支持多站点的真实全局服务器负载均衡
  • 缓存、内容压缩和内容切换
  • Web Cookie 持久性
  • IPSec 隧道
  • 预认证
  • Let’s Encrypt 支持
  • Kubernetes 支持

Kemp LB 被包括 Apple、Sony、JP Morgan、Audi 和 Hyundai 在内的一些大型品牌使用。其免费版本提供了足够的功能,但如果您有更高级的需求,可以考虑商业许可证。

如果您或您的组织决定探索 Kemp LB,并且需要一些在线培训,可以参考迈克·沃尔顿的在线课程

HAProxy

HAProxy 是市场上流行的选择,它提供高可用性、代理和 TCP/HTTP 负载均衡。HAProxy 被全球许多知名品牌所采用,以下是其中一部分:

值得一提的功能包括:

  • 支持 IPv6 和 UNIX 套接字
  • Deflate & Gzip 压缩
  • 健康检查
  • 基于源的会话粘性
  • 内置的统计报告(查看演示

HAProxy 也有企业版、硬件和虚拟设备。

了解 HAProxy 的最佳方式是实际试用。社区版具有丰富的功能,而且是免费的。

Zevenet

Zevenet 支持 L3、L4 和 L7 层。它以源代码、IOS 镜像和 Docker 镜像的形式提供。

Zevenet 支持高级健康检查监控,因此有故障的服务器或服务可以快速停止运行,以提供流畅的用户体验。Zevenet 之前名为 Zen,可以很好地与基于 TCP 的协议(如 FTP、SIP、SSL、HTTP 等)配合使用。

如果您正在寻找 Zevenet 托管服务,可以尝试镰仓

Neutrino

Neutrino 由 eBay 使用,并使用 Scala 和 Netty 构建。它支持最少连接和轮询算法,并具有以下交换功能:

  • 使用规范名称
  • 基于上下文
  • L4 使用 TCP 端口号

经测试,Neutrino 可以在 2 核虚拟机上处理每秒 300 多个请求的吞吐量。 如果与 HAProxy 比较,Neutrino 的一大优势是 L7 切换功能。

但通常建议亲自尝试,看看哪种方案最适合您的环境。

Balance

In lab networks 的 Balance 是一款 TCP 代理轮询 LB,在监听端支持 IPv6。这意味着您可以在前端使用 IPv4,在后端使用 IPv6。

它具有所有基本的 LB 功能。

Pen

Pen 已在 Linux、FreeBSD、HP-UX、Solaris 和 Windows 上进行了测试,但没有理由不能在其他 Unix 发行版上运行。它支持基于 UDP 和 TCP 的协议,如 HTTP、SNMP、DNS 等。

除了基本功能外,Pen 还支持以下一些功能:

  • GeoIP 过滤器
  • SSL 终止
  • IPv4 和 IPv6 兼容性

Nginx

Nginx 通常被认为是一个 Web 服务器和代理服务器,但开源的 Nginx 确实支持跨多个服务器的基本级别的内容切换和请求路由分发。

然而,Nginx Plus 版本的功能远不止这些。

Nginx Plus 是一个集成的 Web 应用交付解决方案,包括负载均衡、内容缓存、Web 服务器、WAF、监控等。 它提供高性能的负载均衡解决方案,可以扩展应用程序以每秒处理数百万个请求。

Traefik

Traefik 是一个使用 Go 构建的现代、快速的 HTTP 反向代理和 LB。Traefik 支持多种后端服务,如 Amazon ECS、Docker、Kubernetes、Rancher 等。

它支持 WebSockets、HTTP/2、使用 Let’s Encrypt 的自动 SSL 证书更新,以及用于管理和监控资源的清晰界面。

Go-between

Go-between 是一款简约但功能强大的高性能 L4 TCP、TLS 和 UDP 负载均衡器。

它适用于 Windows、Linux、Docker、Darwin 等多个平台,如果感兴趣,您可以从源代码构建。 Go-between 根据您在配置中选择的以下算法来平衡负载:

  • IP 哈希
  • 轮询
  • 最小带宽
  • 最少连接
  • 权重

根据基准测试,Go-between 比 HAProxy 快,但不如 Nginx。

如果您正在寻找具有动态环境自动发现功能的现代 L4 均衡解决方案,那么 Go-between 似乎很有潜力。建议试用一下,看看效果如何。

结论

希望上面列出的开源负载均衡器软件能帮助您为您的应用程序选择合适的方案。它们都是免费的,找到有效方法的最佳方式是亲自尝试。

如果您想学习新技能,请尝试 Udemy,那里有数以千计的视频课程可供选择。