服务器负载均衡

负载均衡

概念:其意思就是分摊到多个操作单元上进行执,操作单元可以是web服务器、ftp服务器、企业关键应用服务器等. 不能理解成平均分配到每个操作单元上,因为每台服务器的承载能力不尽相同,硬件配置、网络带宽等差异,所以并不能平均的分配,需要参考的因素很多。

 

负载均衡实现方式

1、http重定向

当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过http响应头信息中的Location标记来返回一个新的URL. 这意味着HTTP代理需要继续请求这个新的URL,完成自动跳转.

性能缺陷: 1.吞吐率限制(主要是主站点服务器的限制) 2.重定向访问深度不同 我们需要权衡转移请求的开销和处理实际请求的开销,前者相对于后者越小,那么重定向的意义就越大,例如下载. 你可以去很多镜像下载网站试下,会发现基本下载都使用了Location做了重定向。

2、DNS负载均衡

DNS 负责提供域名解析服务,当访问某个站点时,实际上首先需要通过该站点域名的DNS服务器来获取域名指向的IP地址, 在这一过程中,DNS服务器完成了域名到IP地址的映射,同样,这样映射也可以是一对多的,这时候,DNS服务器便充当了负载均衡调度器, 它就像http重定向转换策略一样,将用户的请求分散到多台服务器上,但是它的实现机制完全不同。 特性: 1、可以根据用户IP来进行智能解析.DNS服务器可以在所有可用的A记录中寻找离用记最近的一台服务器。 2、动态DNS:在每次IP地址变更时,及时更新DNS服务器.当然因为缓存,一定的延迟不可避免.

3、反向代理负载均衡

几乎所有主流的Web服务器都热衷于支持基于反向代理的负载均衡.它的核心工作就是转发HTTP请求. 相比前面的HTTP重定向和DNS解析,反向代理的调度器扮演的是用户和实际服务器中间人的角色1、任何对于实际服务器的HTTP请求都必须经过调度器 2、调度器必须等待实际服务器的HTTP响应,并将它反馈给用户(前两种方式不需要经过调度反馈,是实际服务器直接发送给用户)

特性: 1、调度策略丰富.例如可以为不同的实际服务器设置不同的权重,以达到能者多劳的效果. 2、对反向代理服务器的并发处理能力要求高,因为它工作在HTTP层面. 3、反向代理服务器进行转发操作本身是需要一定开销的,比如创建线程、与后端服务器建立TCP连接、接收后端服务器返回的处理结果、 分析HTTP头部信息、用户空间和内核空间的频繁切换等,虽然这部分时间并不长,但是当后端服务器处理请求的时间非常短时, 转发的开销就显得尤为突出.例如请求静态文件,更适合使用前面介绍的基于DNS的负载均衡方式。 4、反向代理服务器可以监控后端服务器,比如系统负载、响应时间、是否可用、TCP连接数、流量等,从而根据这些数据调整负载均衡的策略。 5、反向代理服务器可以让用户在一次会话周期内的所有请求始终转发到一台特定的后端服务器上(粘滞会话), 这样的好处一是保持session的本地访问,二是防止后端服务器的动态内存缓存的资源浪费。

4、IP负载均衡(LVS-NAT)

因为反向代理服务器工作在HTTP层,其本身的开销就已经严重制约了可扩展性,从而也限制了它的性能极限.那能否在HTTP层面以下实现负载均衡呢? NAT服务器:它工作在传输层,它可以修改发送来的IP数据包,将数据包的目标地址修改为实际服务器地址.

服务器在http层除了基本的发送接收,不需要做多余的请求工作,http层的开销大大减轻

5、直接路由(LVS-DR)

NAT是工作在网络分层模型的传输层(第四层),而直接路由是工作在数据链路层(第二层),貌似更屌些。 它通过修改数据包的目标MAC地址(没有修改目标IP),将数据包转发到实际服务器上,不同的是,实际服务器的响应数据包将直接发送给客户,而不经过调度器。

6、IP隧道(LVS-TUN)

基于IP隧道的请求转发机制:将调度器收到的IP数据包封装在一个新的IP数据包中,转交给实际服务器, 然后实际服务器的响应数据包可以直接到达用户端。目前Linux大多支持,可以用LVS来实现,称为LVS-TUN,与LVS-DR不同的是, 实际服务器可以和调度器不在同一个WANt网段,调度器通过 IP隧道技术来转发请求到实际服务器,所以实际服务器也必须拥有合法的IP地址。

总结:负载均衡有硬件和软件两种. 硬件层的比较牛逼,将4-7层负载均衡功能做到一个硬件里面,如F5,梭子鱼. 目前主流的软件负载均衡分为四层和七层 LVS属于四层负载均衡,工作在tcp/ip协议栈上,通过修改网络包的ip地址和端口来转发, 由于效率比七层高,一般放在架构的前端. 七层的负载均衡有nginx, haproxy, apache等, 工作在应用层,因此可以将HTTP请求等应用数据发送到具体的应用服务器, 如将图片请求转发到特定的服务器上,总之可以做到更智能的负载均衡,这些功能在四层负载均衡上不好实现,一般放在架构的后面位置,布置在应用服务器前面.

负载策略算法

1、轮询(Round Robin)

2、加权轮询(Weighted Round Robin)

3、动态轮询

4、随机

5、最快算法(最快算法基于所有服务器中的最快响应时间分配连接)

6、最少连接(系统把新连接分配给当前连接数目最少的服务器)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值