【读书笔记】全局负载均衡工作原理及实现

[TOC]

《CDN技术详解》读书笔记

图片.png

全局负载均衡工作原理及实现

1. 全局负载均衡在 CDN 系统中的作用

  • CDN 系统总是希望使用距离用户最近的设备为用户提供服务,这样就需要在全网不同位置部署多个节点。CDN 全局负载均衡系统GSLB就是为了解决节点之间相互协同的问题,实现整个系统的大规模服务能力和高可用性。
  • GSLB 主要是在多个节点之间进行均衡,其结果可能直接终结负载均衡的过程,也可能将用户访问交付给下一层次的负载均衡系统
  • 在区域或者本地的负载均衡系统中,每个服务节点只掌握本节点内服务设备的信息,而在 GSLB 系统中,需要掌握所有节点中的信息

2. 基于DNS解析的GSLB实现机制

首先明白什么是DNS解析:

DNS 记录类型及报文格式:

  1. A 记录, Address。描述了域名到IP地址的映射关系,对于同一个域名,可以存在多条映射记录
  2. NS 记录 Name Server。域名服务器记录,用于指定域名由哪个DNS服务器来进行解析的。
  3. SOA 记录 Start Of Authority。记录指定该区域的权威域名服务器。
  4. CNAME。记录别名于域名的对应关系,这种记录允许将多个名字映射到同一台计算机上
  5. PTR 记录, Point Record。记录用于描述 IP 地址到域名的映射关系。

基于 DNS 解析实现 GSLB的几种方法:

基于 DNS 解析的 GSLB 方案实际上是把负载均衡设备部署在 DNS 系统中。在用户发出请求时,先通过 DNS 系统来请求获得服务器的 IP 地址,基于 DNS 的 GSLB 正是在返回 DNS 结果的过程中进行智能决策,给用户返回合适的IP 地址

1. 通过CNAME方式实现负载均衡

  • CNAME 描述了一个域名或主机名的别名,域名服务器获取到 CNAME 记录后,会用记录中的别名来替换查找的域名或者主机名。
  • 实现上利用了 DNS 本身的别名机制和轮训机制。
  • 先将 GSLB 主机名定义为所查询域名的权威 DNS服务器的别名,然后在 GSLB 主机名添加多条 A 记录,分别对应多个服务器的 IP 地址。这样,本地 DNS 服务器会向客户端返回多个IP地址作为查询结果,并且这些IP地址的排列顺序是轮换的

2. 负载均衡器作为权威 DNS 服务器

  • 负载均衡器作为权威 DNS 服务器,这样 GSLB 会接收到所有对这个域的 DNS 请求,从而能够根据预设的一些策略来进行智能 DNS 解析。
  • 所有的请求通过 GSLB ,对于DNS 解析能力会造成或多或少的影响。

3. 负载均衡器作为代理 DNS服务器

  • 这种情况下,负载均衡器也是注册为一个域名空间的权威 DNS 服务器而真正的权威域名服务器则部署在负载均衡器后面。所有的请求会先到达负载均衡器,由负载均衡器转发给真正的权威 DNS 服务器,然后修改权威DNS服务器返回的响应信息,从而达到负载均衡。

负载均衡的策略判断条件

  1. 服务器的“健康状况”。健康检查,未通过的不能作为域名解析结果
  2. 地理区域距离。由于 DNS 系统本身的工作原理所限,GSLB 只能看到用户本地 DNS 服务器的 IP 地址,看不到用户终端的IP位置
  3. 会话保持。需要保证同一用户访问被调度到同一台服务器上。
  4. 响应时间。通过测量服务器对于响应的时间,优化 GSLB 的策略
  5. IP 地址权重。权重值决定了某个 IP 与其他候选 IP 相比分配到的流量比例。
  6. 会话能力阀值。 GSLB 控制器可以获取每个服务器当前可用的会话数和会话表大小的最大值,达到阀值的服务器,将不会被选择
  7. 往返时间 RTT Rount-Trip Time。
  8. 其他信息,包括服务器当前可用会话数、最小选择次数、轮训等

3. 基于DNS的GSLB 应用部署方式

  • 域组 Domain Group:根据别名设置,用户根据别名选择提供服务的服务池与具体的虚拟服务器。
  • 服务池 Pool:提供同种业务的多个虚拟服务器的逻辑组概念。
  • 虚拟服务器 Virtual Server:用户访问网站时,直接提供服务的虚拟设备,其 IP 地址就是 GSLB 最终解析返回的地址。
  • 区域 Region:用户的本地 DNS 所代表的地址范围,用户可以通过在浏览器中设置本地 DNS 地址来定义所在区域。
  • 策略:GSLB 的路由控制策略。

负载均衡策略:

均衡策略:

  • 静态策略
    1. 基于特定的用户源 IP 地址。特定的 IP 地址端定向到特定的 POP 节点。
    2. 基于加权的 IP 地址。
    3. 基于加权的 POP节点。POP 节点对应的级别是虚拟服务器。
    4. 基于地理位置。
    5. 基于POP 节点管理优先级。
    6. 基于简单轮训。
  • 动态策略
    1. 基于 POP 节点的健康状况。
    2. 基于相对会话能力。GSLB会周期性的计算当前会话数和最大会话数的比值,然后与最大阀值进行比较。超过阀值,该节点不是选择的最佳节点。
    3. 基于绝对会话能力。不计算相对会话的比值,而是直接使用当前会话数与最大阀值做比较。
    4. 基于物理服务器绑定。
    5. 基于主动测量的用户访问往返时间 RTT。
    6. 基于被动测量的用户访问往返时间。
    7. 基于新建连接数
    8. 基于流量。根据POP节点或者虚拟服务器每秒完成多少比特数据的吞吐。
    9. 基于POP节点访问次数

4. 基于应用层协议重定向的 GSLB

工作流程:

  1. 用户首先向网站的本地 DNS 请求域名解析。
  2. 由于网站事先进行了域名 CNAME 指向 CDN 的GSLB 域名和 IP 所以本地DNS会向用户返回 GSLB 设备的 IP 地址。
  3. 用户向中动态 GSLB 设备发送 HTTP GET 请求,请求该网站的某个资源。
  4. GSLB设备根据综合分析用户IP、内容分布、设备负载、链路状况等实时信息,为用户选择一个合适的服务单元。
  5. 用户根据得到的IP 地址向 CDN 节点发送媒体访问请求。
  6. 如果这个IP地址仍然·是一个负载均衡设备,该设备会选择一个具体的设备,返回给用户。
  7. 用户根据得到的 IP 地址,再次发送请求。

5. 基于 IP 路由的 GSLB

  1. 先为两个本地负载均衡器配置一个相同的 VIP 地址,对 IP 网上的路由器来说,这是到达同一IP地址的两条不同的路由。
  2. 终端发送请求时,当经过路由器,会根据路由表来选择走哪条路径,转发数据包到本地负载均衡器上。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 1. 背景 负载均衡(又称为负载分担),英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、...
    大富帅阅读 3,403评论 0 2
  • 转:http://kb.cnblogs.com/page/188170/ (一) 简单理解四层和七层负载...
    菜鸟小玄阅读 996评论 0 3
  • 开头先理解一下所谓的“均衡”不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,...
    野柳阅读 1,888评论 0 1
  • 一、什么是负载均衡? 互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网...
    彬彬酱阅读 2,174评论 0 19
  • 原文 一、什么是负载均衡? 互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着...
    baby_honour阅读 214评论 0 1