2007-10-18
Load Balancing
关键字: LB
基于Shared Nothing Architecture做Load Balancing,遵循REST的无状态模型,不用考虑Sticky Sessions
一、DNS Load Balancing
DNS Load Balancing是最简单的方式,它将相同域名解析到不同IP
由于TTL和缓存时间,DNS不能实时更新clusters的更改
DNS方式很难自定义配置balance策略
DNS方式对traffic的balance不准确,对特定地域而言DNS会将特定域名一直路由到一个IP上
DNS方式很难搞redundancy和failover
二、用硬件做Load Balancing
Alteon AS range(application switches)
Citrix Netscalers
Cisco CSS range(content-switching servers)
Foundry Networks ServerIron
商用产品的缺点就是贵
相比DNS方式,用硬件产品做Load Balancing很好的支持failover
三、用软件做Load Balancing
Perlbal
Pound
Nginx
LVS
幸好有免费开源软件
四、Layer 4 Load Balancing
即在OSI7层模型的第4层搞Load Balancing,也就是在Transport这层
最简单的方式是使用Round robin算法来做Load Balancing,Load Balancer捕获请求并分发到backend server列表中的第一个server,并标记该Server为last used server,下次请求时则分发到下一个backend server
五、Layer 7 Load Balancing
在Application这层搞Load Balancing,将HTTP请求headers纳入balancing策略考虑
HTTP请求URL本身就是Layer 7 Load Balancing的例子
可以在real server cluster之上搞一个Hash table作为Layer 7 Load Balancing,访问某一特定的URL时分发到一个特定的real server,这样对该特定server可以每次都命中特定的缓存而不用在每个real server都建立同样的缓存
Layer 7 Load Balancing对HTTP请求的解析开销很大,所以它的scalability相对Layer 4 Load Balancing而言有限
六,Huge-Scale Balancing
超级大型的应用我们需要GSLB(global server load balancing)来将负载balance到不同的Data Center,将客户端路由到最近的DC以保持最少的latency
Akamai EdgePlatform提供整合的服务
七、Balancing非HTTP的Traffic
例如email,由于SMTP与HTTP很类似,我们可以使用HTTP Load Balancer来balance email traffic,只需创建一个新的service来监听25端口并连接到real backend servers
一、DNS Load Balancing
DNS Load Balancing是最简单的方式,它将相同域名解析到不同IP
由于TTL和缓存时间,DNS不能实时更新clusters的更改
DNS方式很难自定义配置balance策略
DNS方式对traffic的balance不准确,对特定地域而言DNS会将特定域名一直路由到一个IP上
DNS方式很难搞redundancy和failover
二、用硬件做Load Balancing
Alteon AS range(application switches)
Citrix Netscalers
Cisco CSS range(content-switching servers)
Foundry Networks ServerIron
商用产品的缺点就是贵
相比DNS方式,用硬件产品做Load Balancing很好的支持failover
三、用软件做Load Balancing
Perlbal
Pound
Nginx
LVS
幸好有免费开源软件
四、Layer 4 Load Balancing
即在OSI7层模型的第4层搞Load Balancing,也就是在Transport这层
最简单的方式是使用Round robin算法来做Load Balancing,Load Balancer捕获请求并分发到backend server列表中的第一个server,并标记该Server为last used server,下次请求时则分发到下一个backend server
五、Layer 7 Load Balancing
在Application这层搞Load Balancing,将HTTP请求headers纳入balancing策略考虑
HTTP请求URL本身就是Layer 7 Load Balancing的例子
可以在real server cluster之上搞一个Hash table作为Layer 7 Load Balancing,访问某一特定的URL时分发到一个特定的real server,这样对该特定server可以每次都命中特定的缓存而不用在每个real server都建立同样的缓存
Layer 7 Load Balancing对HTTP请求的解析开销很大,所以它的scalability相对Layer 4 Load Balancing而言有限
六,Huge-Scale Balancing
超级大型的应用我们需要GSLB(global server load balancing)来将负载balance到不同的Data Center,将客户端路由到最近的DC以保持最少的latency
Akamai EdgePlatform提供整合的服务
七、Balancing非HTTP的Traffic
例如email,由于SMTP与HTTP很类似,我们可以使用HTTP Load Balancer来balance email traffic,只需创建一个新的service来监听25端口并连接到real backend servers
- 14:31
- 浏览 (713)
- 评论 (0)
- 分类: Architecture
- 相关推荐
发表评论
- 浏览: 681913 次
- 性别:

- 来自: BJ

- 详细资料
搜索本博客
我的相册
screenshot
共 1 张
共 1 张
最近加入圈子
最新评论
-
Mnesia用户手册:三,构建 ...
要想创建disc_copies和disc_only_copies类型的表有两个前 ...
-- by hideto -
翻译www.djangobook.com之 ...
有个问题问一下: 我先配置了一个urlpatterns是这样的: r'^myd ...
-- by lyhapple -
Why OO sucks
gigix 写道lyl0035 写道为啥就没人想想,其实在面向对象的代码中也流露 ...
-- by hurd -
Why OO sucks
貌似又回到当年java vs c的年代。两种方式,不管是OO还是FP,仅是人处理 ...
-- by python -
大家可以抛弃Java踹死Djan ...
to phoenixup:1,你还别说,你举的什么Struts,Tapestry ...
-- by hideto






评论排行榜