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