divisor:快速且易于配置的负载均衡器


用Go语言提供快速且易于配置的负载均衡器。目前它包括round-robin、weighted round-robin、least-connection、ip-hash和random算法

该项目使用fasthttp库开发,保证了高性能。其目的是通过路由传入请求在多个服务器之间均匀分配负载。

该项目旨在简化用户的配置过程,同时执行负载均衡器的基本功能。因此,它提供了多种配置选项,可以进行调整以满足用户的需求。

该项目特别适合大型应用程序和网站。由于其高性能、易于配置以及对不同算法的支持,它可用于任何需要负载均衡器的应用程序。

特征

  • 快速且易于配置的负载均衡器。
  • 支持循环、加权循环、最少连接、IP 哈希和随机算法。
  • 前端服务器支持 TLS 和 HTTP/2。
  • 使用 fasthttp 库来实现高性能和可扩展性。
  • 提供多种配置选项以满足用户需求。
  • 可以处理大型应用程序和网站。
  • 包括一个内置的监控系统,可以显示系统的CPU使用率、RAM使用率、Goroutine数量和打开连接的实时信息。
  • 提供有关每个服务器的平均响应时间、总请求计数和上次使用时间的信息。
  • 轻量级且高效的实施,最大限度地减少资源使用。

安装
最新版本的 Divisor 可以从版本页面下载。为您的系统选择适当的二进制文件,下载并解压存档,然后将二进制文件移动到系统 $PATH 变量中的目录(例如 /usr/local/bin)。

从源头构建
或者,您可以通过将此存储库克隆到本地计算机并运行以下命令来从源代码构建 Divisor:

git clone https://github.com/aaydin-tr/divisor.git &&
cd divisor &&
go build -o divisor &&
./divisor

虽然 Divisor 具有多种功能和优点,但它也有一些需要注意的限制:

  • Divisor 目前运行在第 7 层,这意味着它是专门为 HTTP(S) 负载平衡而设计的。它不支持其他协议,例如 TCP 或 UDP。
  • Divisor 不支持 HTTP/3,这对于某些应用程序可能很重要。
  • Divisor 不支持后端服务器使用 HTTPS。HTTPS 仅适用于前端服务器。

在考虑此负载均衡器是否适合您的项目时,请记住这些限制。

虽然 Divisor 具有多项功能,但计划在未来版本中还存在一些需要改进的领域:

  • 添加对其他协议的支持,例如 TCP 或 UDP。
  • 添加前端的 TLS 支持。
  • 前端服务器支持 HTTP/2。
  • 添加更多负载平衡算法,例如,
    • 最少连接
    • 粘性循环法
  • 提高高流量应用程序的性能和可扩展性。
  • 扩展监控功能以提供更详细的指标和分析。