负载均衡的几种实现技术

当web服务器的垂直扩展变得话费很高或困难的时候,我们需要考虑服务器的水平扩展,即负载均衡技术。负载均衡有很多技术,这里我们来一一介绍。

1.HTTP重定向

我们可以在代码层面实现,通过设定访问特定页面如index.php,在php代码中设置header的location值,返回重定向指令。这实际上是web应用程序自己来实现。

2.DNS负载均衡

DNS负责域名和IP地址之间的映射。DNS服务器可以作为调度器(DNS的常见策略是RR Round Robin方式)。

尽管基于HTTP重定向的负载均衡系统受到主站点性能的制约,但是不可否认这种方案中的调度策略具有很好的灵活性,你完全可以通过Web应用程序实现任何你能想到的调度策略。

相比之下,为DNS服务器开发自定义的调度策略就不那么容易了,但是,类似bind这样的DNS服务器软件提供了丰富的调度策略供你选择。DNS服务器充当了一个粗放型的请求调度器。

3.反向代理负载均衡

它工作在HTTP层面,也就是TCP七层结构中的应用层,所以基于反向代理的负载均衡也称为七层负载均衡。

这种方案负载均衡服务器是有瓶颈效应的,这种效应随着后端服务器内容处理时间的减少而逐渐明显,这不难解释,反向代理服务器进行转发操作本身是需要一定开销的,比如创建线程,与后端服务器建立TCP连接,接受后端服务器返回的处理结果,分析http头信息,用户空间和内核空间的频繁切换等,通常这部分时间并不长,但是当后端服务器处理请求的时间非常短时,转发的开销就显得尤为突出。

4.IP层负载均衡LVS-NAT

我们需要在HTTP层面以下实现负载均衡,这些负载均衡调度器的工作必须由linux内核来完成,因为我们希望网络数据包在从内核缓冲区进入进程用户地址空间之前,尽早地被转发到其他实际服务器上。而且正因为可以将调度器工作在应用层之下,这些负载均衡系统可以支持更多的网络服务协议,比如ftp,smtp,dns,以及流媒体和VoIP等应用。

DNAT: 反向NAT,将实际服务器放置在内部网络,而作为网关的NAT服务器将来自用户端的数据包转发给内部网络的实际服务器(需要修改的是数据包的目标地址和端口)。比较著名的例子是LVS。NAT调度器的吞吐率很高是因为其在内核中进行请求转发的较低开销。

但是NAT服务器的带宽却成为了瓶颈。幸运的是,LVS提供了另一种负载均衡的方式,那就是直接路由。

5.直接路由LVS-DR

不同于NAT机制,直接路由的负载均衡调度器工作在数据链路层上,简单地说,它通过修改数据包的目标mac地址,将数据包转发到实际服务器上,并且重要的是,实际服务器的响应数据包将直接发送给客户端,不经过调度器。适用于视频网站(响应的数据包远远超过请求的数据包)。对于LVS-DR,一旦调度器失效,你可以马上将LVS-DR切换到DNS-RR模式

6. IP隧道

LVS-TUN与LVS-DR不同的是,实际服务器可以和调度器不在同一个wan网段。

时间: 2024-12-28 21:53:44

负载均衡的几种实现技术的相关文章

Web负载均衡的几种方式

Web负载均衡的几种实现方式 摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web负载均衡.根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询.IP负载均衡和CDN.其中IP负载均衡可以使用硬件设备或软件方式来实现. 什么是web负载均衡服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为: 高性能集群:将单个重负载的请

LVS负载均衡的三种模式和八种算法总结

三种LVS负载均衡模式 调度器的实现技术中,IP负载均衡技术是效率最高的,IP虚拟服务器软件(IPVS)是在linux内核中实现的? LVS负载均衡模式---1.NAT模式 NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)?如果把NAT的过程稍微变化,就可以成为负载均衡的一种方式?原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REALSERVER的IP地址并发至此REALSERVER,而REALSERVER则在处

基于Apache+Tomcat负载均衡的两种实现方法

Apache+Tomcat实现负载均衡的两种实现方法 如果我们将工作在不同平台的apache能够实现彼此间的高效通信,因此它需要一种底层机制来实现--叫做apr Apr的主要目的就是为了其能够让apache工作在不同的平台上,但在linux上安装apache的时候通常都是默认安装的 [[email protected] ~]#rpm -qi aprName                 :apr                                        Relocation

Web负载均衡的几种实现方式

参考帖子: Web负载均衡的几种实现方式 大型网站架构系列:负载均衡详解(上) DNS 原理入门 解决nginx负载均衡的session共享问题 什么是消息队列

nignx 负载均衡的几种算法介绍

负载均衡,集群必须要掌握,下面介绍的负载均衡的几种算法.   1 .轮询,即所有的请求被一次分发的服务器上,每台服务器处理请求都相同,适合于计算机硬件相同.   2.加权轮询,高的服务器分发更多的请求.按照配置的权重分发请求,比如某台服务器一次给它两个请求处理.   3.随机分配.简单实用   4.最少连接,计算计算机的处理连接数,把 请求分发给连接最少的应用服务器.应该说这是最符合负载均衡算法的.   5.源地址散列,根据来源IP 的Hash算法,获取某台服务器.这个IP的上下文信息会被存储在

Nginx 做负载均衡的几种轮询策略

网上看见nginx的upstream目前支持的5种方式的分配,摘录备忘. 1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.upstream backserver {server 192.168.0.14;server 192.168.0.15;} 2.weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况.upstream backserver {server 192.168.0.14 weight=10;serv

负载均衡的几种算法实现。

负载均衡,集群必须要掌握,下面介绍的负载均衡的几种算法.   1 .轮询,即所有的请求被一次分发的服务器上,每台服务器处理请求都相同,适合于计算机硬件相同.   2.加权轮询,高的服务器分发更多的请求.按照配置的权重分发请求,比如某台服务器一次给它两个请求处理.   3.随机分配.简单实用   4.最少连接,计算计算机的处理连接数,把 请求分发给连接最少的应用服务器.应该说这是最符合负载均衡算法的.   5.源地址散列,根据来源IP 的Hash算法,获取某台服务器.这个IP的上下文信息会被存储在

浅析负载均衡的6种算法,Ngnix的5种算法。

浅析负载均衡的6种算法,Ngnix的5种算法.?浮生偷闲百家号03-21 10:06关注内容导读其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果.源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号.采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问.不同的后端服务器可能机器的配置和当前系统的负载并不相同

Nginx七层负载均衡的几种调度算法

Nginx七层负载均衡的几种调度算法 ??Nginx是一款轻量级的高性能web服务器,同时也是一款非常优秀的负载均衡器和反向代理服务器.由于支持强大的正则匹配规则.动静分离.URLrewrite功能及安装配置简单且对网络稳定性依赖非常小等优点,所以常用来做为七层负载均衡使用.在硬件不差的情况下,通常可以稳定支持几万的并发连接,在硬件性能足够好,且对系统内核参数及Nginx配置进行优化甚至可以达到10万以上的并发. 以下是Nginx作为七层负载均衡常用的几种调度算法和适用的业务场景 1.轮询(默认