重定向与负载均衡

前言

重定向技术,它们是如何工作的以及它们的负载均衡能力如何:

  • HTTP 重定向
  • DNS 重定向
  • 任播路由
  • IP MAC 转发
  • IP 地址转发
  • WCCP (Web 缓存协调协议)
  • ICP (缓存间通信协议)
  • HTCP(超文本缓存协议)
  • NECP(网元控制协议)
  • CARP(缓存阵列路由协议)
  • WPAD(Web代理自动发现协议)

为什么要重定向

由于HTTP应用程序总是要做下列3件事情,所以在现代网络中重定向是普遍存在的:

  • 可靠的执行 HTTP 事任
  • 最小化时延
  • 节约网络带宽
    处于这些原因,Web内容通常分布在很多地方。这么做是出于可靠性的考虑。这样,如果一个位置出问题了,还有其他可用;如果客户端能去访问较近的资源,就可以更快地收到所有请求的内容,以降低响应时间;将目标服务器分散,还可以减少网络拥塞,可以将重定向当作一组有助于找到"最佳"分布式内容的技术。

通用的重定向方法

可以通过重定向技术将流量重定向到不同的(可能更优的)服务器,或者通过代理来转发流量。

  • HTTP 重定向
  • DNS 重定向
  • 传播寻址
  • 任播寻址
  • IP MAC 转发以及 IP 地址转发
HTTP 重定向

客户端请求服务器,服务器返回一个 状态码在 300~399,高速服务器重定向,并且告诉重定向之后的地址。然后,客户端在对重定向地址发出请求,完成请求。
HTTP 重定向可以在服务器间引导请求,但它有以下缺点:

  • 需要原始服务器进行大量处理来判断要重定向到哪台服务器上去,有时,发布重定向所需的处理量几乎与提供页面本身所需的处理量一样。
  • 增加了用户时延,因为访问页面时要进行两次往返。
  • 如果重定向服务器出故障,站点就会瘫痪。
    由于存在这些弱点,HTTP 重定向通常都会与其他一种或多种重定向技术结合使用。
DNS 重定向

DNS 轮转,每一次请求都会在所有的ip中,轮转的分配ip地址。
DNS 对服务器的每次查询都会得到不同的服务器地址序列,所以DNS地址轮转会将负载分摊。但是,这种负载分摊并不完美,因为DNS查找的结果可能会被记住,并被各种应用程序,操作系统和一些简易的DNS服务器重用。很多Web浏览器都会对主机进行DNS查找,然后一次次地使用相同的地址,以减少DNS查找的开销,而且有些服务器也更愿意保持与同一台客户端的联系。另外,很多操作系统都会自行进行DNS查找,并将结果缓存,但并不是对地址进行轮转。因此,DNS轮转通常都不会平衡单个客户端的负载,一个客户端通常会在很长时间内连接到一台服务器上去。
尽管DNS没有对单个客户端的事务进行跨服务器副本的处理,但在分散多个客户端的总负荷方面它做的相当好。只要有大量具有相同需求的客户端,就可以将负载合理地分散到各个服务器上去。

其他基于DNS的重定向算法
  • 负载均衡算法
    有些DNS服务器会跟踪 Web 服务器上的负载,将负载最轻的 Web 服务器放在列表的最前面。
  • 邻接路由算法
    Web 服务器集群在地理上分散时,DNS服务器会尝试着将用户导向最近的Web服务器。
  • 故障屏蔽算法
    DNS服务器可以监视网络的状况,并将请求绕过出现服务器中断或其他故障的地方。
    通常,运行复杂服务器跟踪算法的DNS服务器就是在内容提供者控制之下的一个权威服务器。
    有一些分布式主机服务器会使用这个DNS重定向模型。对于那些要查找附近服务器的服务来说,这个模型的一个缺点就是,权威DNS服务器只能用本地DNS服务器的IP地址,而不能用由客户端的IP地址来做决定。


    涉及权威服务器的DNS请求
任播寻址

任播寻址仍然是项实验性技术。要使用分布式任播技术,服务器就必须"使用路由器语言",而且路由器必须能够处理可能出现的地址冲突,因为因特网地址基本上都是假定一台服务器只有一个地址的。(如果,没有正确的实现,可能会造成很严重的"路由泄漏的问题"。)分布式任播是一种新兴技术,可以为那些自己控制骨干网络的内容提供商提供一种解决方案。


分布式任播寻址.png
IP MAC 转发

在以太网中,HTTP 报文都是以携带地址的数据分组的形式发送的。每个分组都有一个第四层地址,由源IP地址,目的IP地址以及TCP端口号组成,它是第四层设备所关注的地址。每个分组还有一个第二层地址,MAC(媒体访问控制地址),这是第二层设备(通常是交换机和Hub)所关注的地址。第二层设备的任务是接收具有特定输入MAC地址的分组,然后将其转发到特定的输出MAC地址上去。

IP 地址转发

在 IP 地址的转发过程中,交换机或其他第四层设备会检测输入分组中的 TCP/IP 地址,并通过修改目的 IP 地址(不是目的MAC地址),对分组进行响应的转发。与MAC转发相比,这么做的优点是目标服务器不需要位于一跳远的地方,只需要位于交换机的上游就行了,而且通常第三层的端到端因特网路由都会将分组传送到正确的地方。这种类型的转发也被称为 NAT (网络地址转换)。

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

推荐阅读更多精彩内容

  • 一、什么是负载均衡 首先我们先介绍一下什么是负载均衡:负载平衡(Load balancing)是一种计算机网络技术...
    小流江海阅读 993评论 0 2
  • 一、什么是负载均衡? 互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网...
    彬彬酱阅读 2,174评论 0 19
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 什么是网站的伸缩性?网站的伸缩性的应用场景?具体的伸缩性架构应该怎样划分和架构? 1. 伸缩性 在《大型网站技术架...
    串串番茄阅读 713评论 0 2
  • 一、AndroidManifest.xml 中列出需要的权限 二、判断 Android 系统版本 三、申请权限并处...
    奈落落阅读 176评论 0 0