常用的负载均衡方法
来源:互联网 发布:淘宝中差评修改图片 编辑:程序博客网 时间: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数据包中,转交给实现服务器,然后实际服务器可以处理数据包直接响应客户端。
很多的网站一开始并不需要太大的规模,但是做为网站设计者从一开始就必须考虑到扩展,做一个可扩展性强的架构。所谓可扩展性就是系统通过规模的扩展来提高系统的承载能力,毕竟服务器自身的垂直扩展很快就会受到制约,单机很快便不能满足我们的需求,因此这种能力往往通过增加物理服务器或集群节点等方面来实现,这种能力越强,承载能力可提升的空间也越大。而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
- 常用的负载均衡方法
- 常用的负载均衡技术
- 负载均衡的常用算法
- 负载均衡的基本(常用)算法
- 负载均衡的几种常用方案
- nginx做负载均衡的常用配置
- 负载均衡的基本(常用)算法
- 目前比较常用的负载均衡技术
- 负载均衡的几种常用方案
- 常用的负载均衡软件详解
- 常用负载均衡技术
- 负载均衡常用方式
- 常用负载均衡算法
- 常用负载均衡算法
- 常用负载均衡技术
- 负载均衡常用算法
- 网络负载均衡的实现方法
- 两类负载均衡的实现方法
- UVA11489
- BCD码
- 图像中的高频分量和低频分量
- Python包和类的基本用法
- Spring与Ehcache简单自定义监听器配置
- 常用的负载均衡方法
- qsort(),sort()排序函数
- 网络延迟时,Volley多次request的问题解决
- Mac安装MySQL
- 18. 4Sum
- CS0234: 命名空间“System.Web.Mvc”中不存在类型或命名空间名称“Ajax”(是否缺少程序集引用?)
- etl测试学习总结
- JavaScript权威指南_119_第15章_脚本化文档_15.3-文档结构和遍历-作为节点树的文档
- Jmeter聚合报告分析