随着互联网需求的不断增长,网站和网络应用程序面临着快速高效地向全球用户提供内容的挑战。引入具有多源负载平衡的内容交付网络 (CDN) 的概念。就像一个协调良好的机场根据交通和天气状况将航班引导到多条跑道一样,具有多源负载平衡的 CDN 可确保网络流量分布在各个数据中心,从而优化性能和可靠性。
随着互联网需求的不断增长,网站和网络应用程序面临着向全球用户快速高效地提供内容的挑战。引入具有多源负载平衡的内容交付网络 (CDN) 的概念。
就像一个协调良好的机场根据交通和天气状况将航班引导到多条跑道一样,具有多源负载平衡的 CDN 可确保网络流量分布在各个数据中心,从而优化性能和可靠性。
可以将 CDN 负载均衡器(或简称为 LB)视为互联网的交通警察。它承担着引导网络流量跨各个数据中心(称为“源站”)的关键角色。就像交通警察确保车辆在十字路口畅通无阻一样,负载均衡器确保数据在网络中高效传输。
但是它如何决定将这些流量发送到哪里?这就是规则的作用所在。负载均衡器基于一组准则运行。这些规则根据客户定义的条件在内容分发网络 (CDN) 基础设施中确定每个请求将被定向到哪个原始数据中心。
例如,您可以设置规则,将视频流请求发送到数据中心 A,将图像加载请求发送到数据中心 B。
源通常是指请求内容驻留并进行处理的数据中心。虽然它有时可以是数据中心内的特定服务器或应用程序,但主要是数据中心本身。在讨论 Web 交付和性能时,区分源(数据中心)和内容交付网络 (CDN) 至关重要。
CDN(内容分发网络)是由战略性地分布在不同位置的服务器组成的网络,可以根据用户的地理位置加快向用户分发内容。
这些模式分为两种主要的流量形式:
负载均衡器在此过程中发挥着至关重要的作用。它们将流量从 CDN 路由到源层,确保用户请求高效地定向到最佳源。但需要注意的是,负载均衡主要对动态流量很重要,因为动态流量始终被路由到源。
如果您追求最佳的网络性能,那么配置良好的负载均衡器可确保工作负载得到最佳分配,并且用户可以从最近且性能最佳的源接收数据。
无论您运营的是电子商务网站还是流媒体平台,您的最终目标都是提供流畅的体验,让用户忘记他们正在与技术互动。
这就是加入 CDN 多源负载均衡器可以改变游戏规则的地方。
以 Uber 这样的大型企业为例。它不是一款单一的应用程序,而是一系列功能的组合,包括叫车、处理付款、客户支持等。
每个微服务都由位于其自己的源服务器上的单独微服务管理。现在,如果用户想要预订行程,负载均衡器会将该特定请求路由到“订购”微服务。
这种模块化方法具有可扩展性、弹性、更快的部署、灵活性和技术选择等优势。
与此同时,支付车费的其他人的请求将被发送到“结账”微服务。负载均衡器完美地完成了这一切!
假设有三个数据中心,每个数据中心都能执行相同的任务。现在,如果我们将即将到来的大量流量分配给一个数据中心,其他两个数据中心将处于空闲状态,或者相反,如果我们尝试同时访问所有三个数据中心,就会出现同一个请求被处理三次的问题。
解决方案是什么?让负载均衡器决定将哪些内容发送到哪里,以确保传入流量在三个数据中心之间均匀分布。不应让任何单个数据中心承担所有请求的重担,从而防止服务器过载和崩溃。
平衡器知道你在哪里,从而更容易确保适当的分配。它的工作原理如下:
如果您的某个服务器/数据中心需要调整,会发生什么情况?您是否会在处理时放弃尝试访问它的流量?还是应该让流量暂时访问另一个服务器/数据中心,直到您完成调整?
答案很简单,但如果每次都手动完成,可能会非常麻烦。假设发生自然灾害;在这种情况下,要足够快地做出改变将非常困难。
定期维护是生活中的事实,而负载均衡器可以帮助您为此做好准备。它可以将所有传入流量重新路由到其他完全可操作的来源,确保您的用户体验不间断。
既然我们已经确定了“为什么”,那么让我们来谈谈“如何”。实现 CDN 负载平衡的方法有很多种,但主要方法仅限于两种:基于 DNS 的负载平衡和 CDN 负载均衡器。
下面我们来看一下:
域名系统 (DNS) 是互联网的电话簿。当您输入网站名称时,DNS 会将其转换为计算机可以理解的 IP 地址。
在基于 DNS 的负载平衡中,该系统从简单的转换器升级为流量控制器。它使用循环或流量分割算法将传入请求分发到多个数据中心。
其工作原理如下:当 HTTP 请求到达 CDN 时,确定将请求发送到哪个源服务器的过程涉及 DNS 解析。作为此过程的一部分,CDN 发送 DNS 解析请求。然后,DNS 根据各种客户特征返回源服务器的 IP 地址。这可以包括预定义的静态分布(如 80%/20% 分割)或基于CDN 服务器的地理位置等因素。
服务器的选择并非完全随机或仅基于循环分布。虽然这些方法提供了一种直接的流量分配方式,但系统还结合了基于地理位置的流量平衡,确保服务器选择针对用户的位置进行优化。
但值得注意的是,它没有考虑目标服务器的健康状况或负载。同样,它缺乏根据传入请求的 HTTP 请求内容做出决策的能力,这使得它不太灵活。
CDN 负载均衡器是 DNS 负载均衡的更先进、更复杂的版本。此方法通常随高级 CDN 服务提供,它提供的功能远不止简单地分配流量。
在这里,负载均衡器会保留 HTTP 请求并做出明智的决定,决定将其路由到何处。HTTP 请求中嵌入的信息(例如地理位置和所请求的内容类型)会影响此决定。
这使得负载分配更加智能、更加高效。
一个特殊功能是“源站故障转移”。如果一个源站服务器宕机或性能不佳,CDN 负载均衡器会检测到它并将流量重新路由到健康的源站。
此外,大多数先进的 CDN 负载均衡器都提供分析和实时监控功能,让您可以不断调整规则和设置以获得最佳性能。
另一方面,复杂程度的提高需要付出代价。并非所有 CDN 提供商都提供这些高级负载平衡功能。
此外,当您设置多 CDN 时,每个 CDN 负载均衡器只能看到自己的流量,从而导致负载分配不太理想。
基于 DNS 的负载平衡是一种快速而直接的解决方案,但它也有局限性。它可能缺乏基于 HTTP 请求内容的上下文决策,并且存在单点故障漏洞。但是,当与强大的 CDN 负载均衡器集成时,组合系统将成为一项关键资产。无论您是管理复杂的微服务还是向全球受众流式传输内容,负载均衡器都能确保效率、可靠性和合规性,从而提升用户体验。