Load Balancing

基于Shared Nothing Architecture做Load Balancing,遵循REST的无状态模型,不用考虑Sticky Sessions

[b]一、DNS Load Balancing[/b]
DNS Load Balancing是最简单的方式,它将相同域名解析到不同IP
由于TTL和缓存时间,DNS不能实时更新clusters的更改
DNS方式很难自定义配置balance策略
DNS方式对traffic的balance不准确,对特定地域而言DNS会将特定域名一直路由到一个IP上
DNS方式很难搞redundancy和failover

[b]二、用硬件做Load Balancing[/b]
Alteon AS range(application switches)
Citrix Netscalers
Cisco CSS range(content-switching servers)
Foundry Networks ServerIron
商用产品的缺点就是贵
相比DNS方式,用硬件产品做Load Balancing很好的支持failover

[b]三、用软件做Load Balancing[/b]
Perlbal
Pound
Nginx
LVS
幸好有免费开源软件

[b]四、Layer 4 Load Balancing[/b]
即在OSI7层模型的第4层搞Load Balancing,也就是在Transport这层
最简单的方式是使用Round robin算法来做Load Balancing,Load Balancer捕获请求并分发到backend server列表中的第一个server,并标记该Server为last used server,下次请求时则分发到下一个backend server

[b]五、Layer 7 Load Balancing[/b]
在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而言有限

[b]六,Huge-Scale Balancing[/b]
超级大型的应用我们需要GSLB(global server load balancing)来将负载balance到不同的Data Center,将客户端路由到最近的DC以保持最少的latency
Akamai EdgePlatform提供整合的服务

[b]七、Balancing非HTTP的Traffic[/b]
例如email,由于SMTP与HTTP很类似,我们可以使用HTTP Load Balancer来balance email traffic,只需创建一个新的service来监听25端口并连接到real backend servers
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值