10个开源负载均衡器,用于高可用性和提高性能
实现负载均衡(LB)是一种快速且简便的提高应用程序高可用性和性能的方法。
从高层次来看,负载均衡器有三种类型。
- 基于硬件
- 基于云
- 基于软件
硬件负载均衡器是一种专用设备,用于提供负载分配及相关功能。一些热门的LB硬件供应商包括:
- https://yaoweibin.cn/open-source-load-balancer/F5
- TP-Link
- Barracuda
它们价格昂贵,但提供完全控制。
https://yaoweibin.cn/open-source-load-balancer/Cloud load balancer正变得越来越流行。
使用云负载均衡器是一种经济实惠的方式,可以享受完整的功能而无需投资硬件设备。您按照实际使用付费。以下是一些已知的云LB:
- AWS
- Google Cloud
- Cloudflare
- Incapsula
- DigitalOcean
- Azure
您可以从每月20美元起使用。
最后一种是基于软件的负载均衡器,您可以自行安装、管理和配置LB软件。这既可以是商业软件,也可以是开源/免费软件。
如果您没有预算或希望尝试免费解决方案的负载均衡器,则以下内容将对您有所帮助。
Seesaw
https://yaoweibin.cn/open-source-load-balancer/Google使用的可靠的基于Linux的虚拟负载均衡器服务器,用于在同一网络中提供必要的负载分配。
https://yaoweibin.cn/open-source-load-balancer/Seesaw使用Go语言开发,并可在Ubuntu/Debian发行版上良好运行。它支持任播和DSR(直接服务器返回),并且需要两个Seesaw节点。它们可以是物理节点或虚拟节点。
<p 值得一提的是,Seesaw适用于四层网络,所以如果您正在寻找七层负载平衡,您可能需要探索其他选项。
KEMP
KEMP提供的免费高级应用程序交付控制器支持所有主要虚拟化软件。您可以将其下载并在数据中心使用,也可以将其部署在AWS或Azure等云数据中心。
它是免费的,但提供商业级功能,包括以下功能:
- 使用轮询或最小连接算法的第四层负载均衡(TCP/UDP)
- 第七层负载均衡
- 集成https://yaoweibin.cn/open-source-load-balancer/<a href="https://yaoweibin.cn/open-source-load-balancer/web application firewall“>Web应用程序防火墙(WAF)
- 内置入侵防御引擎(IPS)
- 真正的https://yaoweibin.cn/open-source-load-balancer/<a href="https://yaoweibin.cn/open-source-load-balancer/global server load balancing“>全球负载均衡,支持多个站点
- 缓存、内容压缩、内容切换
- Web Cookie持久性
- IPSec隧道
- 预验证
- Let’s Encrypt
- Kubernetes
KEMP LB被一些大品牌如苹果、索尼、摩根大通、奥迪、现代等使用。免费版本提供足够的功能;但如果您需要更多功能,可以查看其商业授权。
如果您或您的组织决定探索KEMP LB并需要一些在线培训,您可以参考这个https://yaoweibin.cn/open-source-load-balancer/online course by Mike Walton。
HAProxy
市场上最流行的之一是提供高可用性代理、TCP/HTTP负载均衡的负载均衡器。https://yaoweibin.cn/open-source-load-balancer/HAProxy被世界上一些声誉很高的品牌使用,例如:
- Airbnb
- GitHub
- Imgur
一些值得一提的功能包括:
- 支持IPv6和UNIX套接字
- Deflate和Gzip压缩
- 健康检查
- 基于源IP的会话黏滞
- 内置统计报告(请查看https://yaoweibin.cn/open-source-load-balancer/demo)
正如您所期望的,HAProxy有企业版、硬件和虚拟设备。
了解HAProxy的最好方式是尝试它们。社区版具有大量功能,并且它们都是免费的。
ZEVENET
https://yaoweibin.cn/open-source-load-balancer/Zevenet支持L3、L4和L7。它以源代码、IOS镜像和docker存储库的形式提供。
它支持先进的健康检查监控,因此故障服务器/服务将快速停止运行,以提供无缝的用户体验。Zevenet(以前称为Zen)与基于TCP的协议(如FTP、SIP、SSL、HTTP等)兼容。
如果你正在寻找Zevenet托管,则可以尝试https://yaoweibin.cn/open-source-load-balancer/Kamatera
Neutrino
https://yaoweibin.cn/open-source-load-balancer/Neutrino由eBay使用,使用Scala和Netty构建。它支持最少连接和轮询算法,并具有以下切换功能。
- 使用规范名称
- 基于上下文
- 使用TCP端口号的L4
Neutrino在2核VM上经过测试,每秒处理300多个请求。如果与HAProxy进行比较,那么使用Neutrino的一个主要优势是L7切换。
但是,如常所言,请尝试两者并查看哪种对您的环境最有效。
Balance
https://yaoweibin.cn/open-source-load-balancer/Balance由In lab networks开发的TCP代理轮询负载均衡器,支持监听端的IPv6。这意味着您可以在前端使用IPv4,而在后端使用IPv6。
它具备所有基本的负载均衡功能。
Pen
https://yaoweibin.cn/open-source-load-balancer/Pen在Linux、FreeBSD、HP-UX、Solaris和Windows上经过测试,但没有理由它不能在其他Unix发行版上工作。它支持基于UDP和TCP的协议,如HTTP、SNMP、DNS等。
一些功能包括以下内容,以及基本功能。
- GeoIP过滤器
- SSL终止
- IPv4和IPv6兼容性
Nginx
我知道你可能会想。Nginx是一个Web服务器、代理服务器等。但是开源的Nginx确实支持基本级别的内容切换和请求路由分发到多个服务器。
但是,Nginx Plus版本要更多。
Nginx Plus是一个全功能的Web应用程序交付解决方案,包括负载均衡、内容缓存、Web服务器、WAF、监控等。它提供高性能的负载均衡解决方案,以扩展应用程序以处理每秒数百万个请求。
Traefik
一个现代快速的基于GO构建的HTTP反向代理和负载均衡器。https://yaoweibin.cn/open-source-load-balancer/Traefik支持多个后端服务,如Amazon ECS、Docker、Kubernetes、Rancher等。
它支持WebSockets、https://yaoweibin.cn/open-source-load-balancer/HTTP/2、使用Let's encrypt进行自动SSL证书更新,以及管理和监控资源的清晰界面。
Gobetween
https://yaoweibin.cn/open-source-load-balancer/Gobetween是一个简约而强大的高性能L4 TCP、TLS和UDP负载均衡器。
它适用于Windows、Linux、Docker、Darwin等多个平台,如果有兴趣,您可以从源代码构建。负载均衡是根据您在配置中选择的以下算法进行的。
- IP哈希
- 世界知名的-轮询
- 最小带宽
- 最少连接
- 权重
根据这个https://yaoweibin.cn/open-source-load-balancer/benchmark,Gobetween比HAProxy更快,但比Nginx慢。
如果您正在寻找具有动态环境的自动发现的现代L4负载均衡解决方案,那么Gobetween似乎是个不错的选择。试试看看效果如何。
结论
希望上述列出的开源负载均衡器软件能帮助您选择适合您的应用程序的软件。它们都是免费的,所以通过尝试它们来找到最适合您的方法。
如果您想学习新技能,请尝试https://yaoweibin.cn/open-source-load-balancer/Udemy,那里有数千个视频课程可供选择。