常用的负载均衡方法

来源:互联网 发布:淘宝中差评修改图片 编辑:程序博客网 时间:2024/05/01 04:18
常用的负载均衡方法
很多的网站一开始并不需要太大的规模,但是做为网站设计者从一开始就必须考虑到扩展,做一个可扩展性强的架构。所谓可扩展性就是系统通过规模的扩展来提高系统的承载能力,毕竟服务器自身的垂直扩展很快就会受到制约,单机很快便不能满足我们的需求,因此这种能力往往通过增加物理服务器或集群节点等方面来实现,这种能力越强,承载能力可提升的空间也越大。而web站点的水平扩展,负载均衡是一种最常见的手段。下面介绍一下几种实现负载均衡的方式。
HTTP重定向
HTTP重定向,相信对于所有web程序员都不陌生,例如我们请求某个页面时,被转向登录页,登录页面之后又被转到了某个页面。大致来说就是,浏览器请求某个URL后,服务器通过HTTP响应头信息中的Location标记返回一个新的URL,这样浏览器主会继续请求这个新的URL,完成自动跳转。也正是因为HTTP重定向有请求转移和自动跳转的能力,所以我们就可以用它来实现负载均衡以实现WEB扩展。
DNS负载均衡
我们知道DNS是负责解析域名的,当我们用域名访问站点时,实际上都会经过DNS服务器来获取域名指向的IP,实际上DNS服务器完成了域名到IP的映射,同样这个映射可以是一对多的,也就是DNS可以把对域名的请求按照一定的策略分配到不同的服务器上,这样我们就可以依此来实现负载均衡。貌似和HTTP重定向很样,但是实现的机制却是完全不同的。(在window下可以用nslookup命令查询域名对应的IP地址列表,这个命令会返回离你最近的DNS服务器缓存的记录并不一定是全部)
反向代理负载均衡
我们之前的缓存介绍中,介绍过反向代理服务器,它同样可以作为调度器来实现负载均衡系统。反向代理服务器核心工作是转发HTTP请求,它工作在HTTP层面,也就是TCP七层中的第七层应用层,因此基于反射代理的负载均衡系统也称为七层负载均衡。目前几乎所有主流WEB服务器都支持基于反向代理的负载均衡,因此实现它并不困难。
IP负载均衡
基于IP负载均衡的系统工作在传输层,会对数据包中的IP地址和端口信息进行修改,所以也称为四层负载均衡。它会在数据到达应用层之前,已完成转发,因些这工作都是由系统内核来完成,应用程序对此无能为力,当然性能来说也会很大的提升。
直接路由
不同于IP负载均衡,直接路由负载均衡高度器工作在数据链路层,它通过修改数据包的目标MAC地址,将数据包转发到实际服务器,不同的是,这些处理的结果直接发送给用户,不再经过调度器。这时我们的实际服务器必须直接连接到外网,并且不在以调度服务器为默认网关。
IP隧道
简单的说,就是调度器将收到的数据包封装到一个新的IP数据包中,转交给实现服务器,然后实际服务器可以处理数据包直接响应客户端。
0 0
原创粉丝点击