GSLB

系列 - 负载均衡技术系列
警告
本文最后更新于 2023-07-10,文中内容可能已过时。

在全球化的今天,如何保证分布在世界各地的用户都能快速而准确地访问到网络服务,已经成为了一个关键的问题。这就是全局负载均衡(Global Server Load Balancing,简称GSLB)所要解决的问题。

GSLB是一种技术,它主要用于在多个区域拥有服务器的网站或网络服务,其目标是使全球的用户只需通过一个IP地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度。

GSLB的优点:

  1. 提升性能:GSLB可以将用户引导到离他们地理位置最近的数据中心,这样可以减少网络延迟,提升用户体验。
  2. 提高可用性:如果某个数据中心发生故障,GSLB可以自动将流量路由到其他健康的数据中心,这样可以避免服务中断。
  3. 提供灵活性:GSLB可以轻松处理流量的峰值,或者在数据中心之间进行平滑的流量切换,以进行维护和升级。

GSLB的挑战:

  1. 实现复杂:需要进行复杂的健康检查和决策算法,实施GSLB通常需要专门的硬件设备或云服务支持。

基于DNS的GSLB工作原理是:当客户端请求一个域名时,DNS查询会被发送到GSLB设备,此设备会根据负载均衡算法和当前服务器的健康状况返回最佳的服务器IP地址。这个过程是透明的,对用户而言,他们只是像平常一样通过域名访问服务。

https://image.linux88.com/2023/07/10/33723412e29793cd90a31c0d6718c83d.svg

优点

  1. 实现简单:基于DNS的GSLB相对于其他负载均衡技术来说,实现起来比较简单。它基于已经存在的、广泛使用的DNS协议,不需要复杂的设备或协议支持。
  2. 实施容易:DNS本质上是一个分布式的系统,这使得基于DNS的GSLB很容易部署和管理。只需要配置好DNS服务器即可,无需对现有的网络架构进行大的改动。
  3. 成本低:相对于需要购买、部署和维护的专用负载均衡设备,基于DNS的GSLB通常来说成本更低。

缺点

  1. 可能判断不准:由于GSLB是基于DNS查询的来源IP地址来进行决策的,如果用户手动指定了DNS服务器,或者使用的是某些公共DNS服务,如Google DNS、OpenDNS等,那么GSLB可能会将用户引导到并非最优的服务器。

在基于HTTP重定向的GSLB中,当用户的设备向一个特定的URL发送HTTP请求时,GSLB设备(例如一个负载均衡器或者一个反向代理)会接收到这个请求。然后,基于各种因素(如服务器的健康状况,地理位置,当前的网络状况等),GSLB设备会向用户的设备发送一个HTTP 302重定向响应,引导用户的设备到另一个URL,这个URL对应的服务器是最合适的目标。

https://image.linux88.com/2023/07/10/85fbe653bf2a7313f7f6f0de6707be0e.svg

优点

  1. 判断准确:因为重定向是基于用户的HTTP请求进行的,GSLB设备可以直接获得用户设备的真实IP地址,因此能够更准确的进行决策,如引导用户到最近的服务器。

缺点

  1. 只适合HTTP业务:由于这种方法是基于HTTP重定向的,所以它只适用于HTTP或HTTPS的业务。对于非HTTP的业务(例如FTP、SMTP等),这种方法就不适用。

应用场景及案例:

基于HTTP重定向的GSLB特别适合全球或者跨地域分布的大型网站或者云服务,需要注意的是,这些服务必须是基于HTTP或HTTPS的。例如:

  1. 全球性的网站和服务:全球性的大型网站和服务,如Amazon、Google、Facebook等,可能会使用基于HTTP重定向的GSLB来提升用户的访问体验,减少访问延迟。
  2. 全球分布的云服务:例如Azure、AWS等,它们可能会使用基于HTTP重定向的GSLB技术来将用户引导到最近的服务节点。
  3. 视频流媒体服务:例如Netflix、YouTube等,它们需要根据用户的地理位置将用户引导到最近的流媒体服务器,以保证播放质量。基于HTTP重定向的GSLB技术在此类场景中也非常有用。

在基于IP欺骗的GSLB中,GSLB设备在接收到客户端请求后,会根据各种因素(如服务器的健康状况,地理位置,当前的网络状况等)来选择最佳的服务器来处理这个请求。然后,GSLB设备会伪装这个选择的服务器的IP地址作为自己的IP地址,然后将这个响应返回给客户端。客户端在收到这个响应后,会认为这个响应是来自于GSLB设备,实际上这个响应是来自于被选择的服务器。

https://image.linux88.com/2023/07/10/646d755c01176633f0a080066e4f6f46.svg

优点

  1. 适用性广:基于IP欺骗的GSLB不依赖于任何特定的协议,因此它适用于任何类型的业务。

缺点

  1. 性能低:因为每次请求都需要经过GSLB设备,这可能会带来一定的性能开销。
  2. 实现复杂:基于IP欺骗的GSLB需要对IP地址进行欺骗,这可能需要比较复杂的网络配置。
  1. 基于DNS的GSLB:由于其实施容易,成本低,实现简单,而且适用于任何类型的服务(不仅仅是HTTP或HTTPS),所以在很多情况下是首选的GSLB实现方式。另一方面,其判断准确性的问题可能会影响其在一些场景下的应用。
  2. 基于HTTP重定向的GSLB:由于其判断准确,所以在只涉及HTTP或HTTPS服务的情况下,这可能是一个更好的选择。但它的应用范围比基于DNS的GSLB更窄,因为它不适用于非HTTP的服务。
  3. 基于IP欺骗的GSLB:这种方式的适用性最广,对任何类型的服务都适用。但是,由于实施起来相对复杂,需要全球范围内的部署和配置,所以其应用更多的是在大型互联网公司,如Google、Facebook等。