本文概述
设置应用程序高可用性和提高性能的最快, 最简单的方法之一就是实现负载平衡器(LB)。
在高层, 有三种类型的负载均衡器。
- 基于硬件
- 基于云的
- 基于软件
硬件负载平衡器是专用的设备, 可提供负载分配及其相关功能。一些受欢迎的LB硬件供应商是:
- F5
- TP链接
- 梭子鱼
它们很昂贵, 但可以完全控制你。
云负载平衡器的趋势比以往任何时候都大。
使用云LB是无需购买硬件设备即可享受全部功能的经济实惠方式之一。你为使用的商品付费。以下是一些已知的云LB。
- AWS
- 谷歌云
- 云耀斑
- 它封装
- DigitalOcean
- 蔚蓝
你可以从每月20美元的低价开始使用。
最后一个基于软件, 你可以自己安装, 管理和配置LB软件。这可以是商业的, 也可以是开源的/免费的。
如果你没有预算或想探索免费的解决方案负载平衡器, 那么下面的内容将为你提供帮助。
免费/开源负载均衡器
- Seesaw
- LoadMaster by KEMP
- HAProxy
- ZEVENET
- ZEVENET
- Balance
- Pen
- Nginx
- Traefik
- Gobetween
Seesaw
Google所使用的可靠的基于Linux的虚拟负载平衡器服务器, 可在同一网络中提供必要的负载分配。
Seesaw是用Go语言开发的, 可以在Ubuntu / Debian发行版上很好地工作。它支持任播, DSR(服务器直接返回), 并且需要两个Seesaw节点。它们可以是物理的也可以是虚拟的。
值得一提的是, Seesaw适用于第四层网络, 因此, 如果你正在寻找第七层负载平衡, 则可能需要探索其他选择。
LoadMaster by KEMP
所有主要的虚拟机管理程序都支持KEMP提供的免费高级应用程序交付控制器。你可以在数据中心下载并使用它, 也可以在AWS或Azure等云DC中进行部署。
它是免费的, 但提供商业功能, 包括以下功能。
- 使用轮询或最少连接算法的TCP / UDP的第4层负载平衡
- 第7层平衡
- 内置Web应用程序防火墙(WAF)
- 内置入侵防御引擎(IPS)
- 真正的全局服务器负载平衡, 它支持多站点
- 缓存, 内容压缩, 内容切换
- Web cookie持久性
- IPSec隧道
KEMP LB被苹果, 索尼, 摩根大通, 奥迪, 现代等一些大品牌所使用。免费版提供了足够的功能。但是, 如果你需要更多, 可以查看其商业许可证。
如果你或组织决定探索KEMP LB并且需要一些在线培训, 则可以参考Mike Walton的本在线课程。
HAProxy
市场上流行的一种提供高可用性, 代理, TCP / HTTP负载平衡的产品。 HAProxy被世界上一些知名品牌所使用, 如下所示。
- 制作的Airbnb
- 的github
- 伊姆古尔
- 最大CDN
一些值得一提的功能。
- 支持IPv6和UNIX套接字
- 压缩和Gzip压缩
- 健康检查
- 基于源的会话粘性
- 内置统计报告(结帐演示)
如你所料, HAProxy获得了企业版, 硬件和虚拟设备。
了解HAProxy的最好方法是尝试使用它们。社区版具有大量功能, 而且它们还是免费的。
ZEVENET
Zevenet支持L3, L4和L7。它可以作为源代码, IOS映像以及在docker存储库中使用。
它支持高级的运行状况检查监视, 因此有故障的服务器/服务会迅速停止运行, 以提供无缝的用户体验。 Zevenet以前称为Zen, 它可以很好地与基于TCP的协议(例如FTP, SIP, SSL, HTTP等)配合使用。
如果你正在寻找Zevenet托管服务, 则可以尝试Kamatera。
ZEVENET
Neutrino由eBay使用, 并使用Scala&Netty构建。它支持具有以下切换功能的最小连接和循环算法。
- 使用规范名称
- 基于上下文
- L4使用TCP端口号
Neutrino经过测试, 可在2核VM上每秒处理300多个请求。如果你要与HAProxy进行比较, 那么使用Neutrino的一大优势就是L7切换。
但是, 一如既往, 尝试两者, 看看哪种方法最适合你的环境。
Balance
通过实验室网络实现平衡是一个TCP代理循环LB, 它在侦听端支持IPv6。这意味着你可以在前端使用IPv4, 在后端使用IPv6。
它具有所有基本的LB功能。
Pen
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
一个现代, 快速的HTTP备用代理和使用GO构建的LB。 Traefik支持多种后端服务, 包括Amazon ECS, Docker, Kubernetes, Rancher等。
它支持Websockets, HTTP / 2, 具有Let’s加密, 干净界面的自动SSL证书续订, 以管理和监视资源。
Gobetween
Gobetween是一款简约而功能强大的高性能L4 TCP, TLS和UDP负载均衡器。
它可以在Windows, Linux, Docker, Darwin等多个平台上运行, 如果有兴趣, 你可以从源代码进行构建。平衡是根据你在配置中选择的以下算法完成的。
- IP哈希
- 世界著名–循环赛
- 最小带宽
- 最少的连接
- 重量
基于此基准, Gobetween比HAProxy快, 但不是来自Nginx。
如果你正在寻找具有动态环境自动发现功能的现代L4平衡解决方案, 那么Gobetween似乎很有希望。试试看如何进行。
总结
我希望上面列出的开源负载平衡器软件可以帮助你为应用程序选择一个。它们都是免费的, 因此最好的方法就是尝试一下。
如果你想学习新技能, 请尝试Pluralsight, 提供6000多种视频课程。
评论前必须登录!
注册