介绍
DigitalOcean 负载均衡器允许您在多个后端服务器之间拆分传入流量。 这通常用于在一组应用程序服务器之间分发 HTTP 请求以增加整体容量。 这是扩展应用程序的常用方法。
负载均衡器还提供其他用例。 例如,它们可以提高您站点的可靠性,或改进您的部署和测试过程。 在本教程中,我们将回顾五个负载均衡器用例。
在开始之前,您应该通过阅读我们的教程 DigitalOcean 负载均衡器简介 来熟悉 DigitalOcean 负载均衡器的基础知识。
1. 规模负载均衡
如上所述,扩展流量是负载均衡器最常见的用例。 通常在 vertical 和 horizontal 术语中讨论缩放。 垂直扩展基本上是将您的应用程序转移到更强大的服务器上,以满足日益增长的性能需求。 水平扩展是在多个服务器之间分配您的流量以共享负载。 负载均衡器有助于水平扩展。
DigitalOcean 负载均衡器允许您通过两种不同的算法分配负载:循环和最少连接。 Round robin 将依次向每个可用的后端服务器发送请求,而最少连接将向连接最少的服务器发送请求。 轮询是迄今为止最常用的负载平衡方案,但如果您的应用程序长时间保持连接打开,则最少连接可能会更好地防止任何一台服务器过载。
使用负载均衡器进行水平扩展的另一个好处是有机会提高服务的可靠性。 我们接下来会谈到这一点。
相关教程:
2. 高可用性
高可用性是一个描述减少停机时间和提高系统可靠性的努力的术语。 这通常通过提高性能和消除单点故障来解决。
负载均衡器可以通过对后端服务器执行重复的运行状况检查并自动从池中删除故障服务器来提高可用性。
可以在负载均衡器控制面板的 Settings 区域自定义运行状况检查:
默认情况下,负载均衡器将每十秒获取一个网页,以确保服务器正确响应。 如果连续 3 次失败,服务器将被移除,直到问题解决。
相关教程:
3. 蓝/绿部署
蓝/绿部署是指在生产基础架构上部署新软件,对其进行彻底测试,然后仅在验证一切都按预期工作后才将流量切换到它的技术。 如果部署最终以新的和意外的方式失败,您可以通过将负载均衡器切换回旧版本来轻松恢复。
DigitalOcean 负载均衡器通过使用 Droplet 标记功能 使蓝/绿部署变得简单。 负载均衡器可以根据标签将流量发送到一组服务器,因此您可以将一组 Droplet 标记为 blue 和另一组 green。 当需要切换时,在负载均衡器控制面板中或通过 API 切换标签:
保存更改后,流量将快速切换到新的 Droplet 集。
相关教程:
4. 金丝雀部署
Canary 部署是一种在更新整个应用程序服务器池之前在一部分用户上测试新版本应用程序的方法。 使用 DigitalOcean 负载均衡器,您可以通过例如将一个金丝雀服务器添加到负载均衡器的池中来做到这一点。 如果您通过日志记录和监控基础设施没有看到任何错误增加或其他不良结果,则可以继续将更新部署到池的其余部分。
您需要为此用例打开 粘性会话 ,以便在通过负载均衡器建立新连接时,您的用户不会在应用程序的不同版本之间反弹:
粘性会话将使用 cookie 来确保来自特定浏览器的未来连接将继续路由到同一服务器。 您可以在负载均衡器控制面板的高级设置区域访问此功能。
5. A/B 部署
A/B 部署在功能上类似于金丝雀部署,但目的不同。 A/B 部署在您的部分用户身上测试一项新功能,以收集信息,为您的营销和开发工作提供信息。 您需要结合现有的监控和日志记录基础设施来执行此操作,以获取有意义的结果。
在服务器端,您将向现有的 A 服务器池添加一个或多个 B 服务器。 如果您需要启动多个 B 服务器来收集足够的数据,您可以像我们为蓝/绿部署所做的那样使用标签来组织它。
结论
尽管在需要扩展时最常考虑使用负载均衡器,但我们已经表明,在许多其他情况下,能够在各种后端服务器之间分配或洗牌流量是有用的。 无论是为了高可用性还是利用各种部署技术,负载均衡器都是生产基础架构中灵活而强大的工具。
有关 DigitalOcean 负载均衡器的更深入和专业的信息,请查看以下教程: