转自: https://blog.csdn.net/mengdonghui123456/article/details/53981976

【前言】

负载均衡技术对于中大型网站的性能提高有着很大的优势,最近在学习《大型网站技术的架构》,其中对于负载均衡技术有一些介绍,将学习的经验总结一下,分享下。多交流。

【协议层】http重定向协议实现负载均衡

原理:根据用户的http请求计算出一个真实的web服务器地址,并将该web服务器地址写入http重定向响应中返回给浏览器,由浏览器重新进行访问。

如图:

优点:比较简单

缺点:浏览器需要零次请求服务器才能完成一次访问,性能较差。

http重定向服务器自身的处理能力可能成为瓶颈。

使用http302响应重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名。

【协议层】dns域名解析负载均衡

原理:在DNS服务器上配置多个域名对应IP的记录。例如一个域名www.baidu.com对应一组web服务器IP地址,域名解析时经过DNS服务器的算法将一个域名请求分配到合适的真实服务器上。

如图:

优点:将负载均衡的工作交给了DNS,省却了网站管理维护负载均衡服务器的麻烦,同事许多DNS还支持基于地理位置的域名解析,将域名解析成距离用户地理最近的一个服务器地址,加快访问速度吗,改善性能。

缺点:目前的DNS解析是多级解析,每一级DNS都可能化缓存记录A,当摸一服务器下线后,该服务器对应的DNS记录A可能仍然存在,导致分配到该服务器的用户访问失败。

DNS负载均衡的控制权在域名服务商手里,网站可能无法做出过多的改善和管理。

不能够按服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,不能反映服务器当前运行状态,所以其的负载均衡效果并不是太好。

可能会造成额外的网络问题。为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

【协议层】反向代理负载均衡

原理:反向代理处于web服务器这边,反向代理服务器提供负载均衡的功能,同时管理一组web服务器,它根据负载均衡算法将请求的浏览器访问转发到不同的web服务器处理,处理结果经过反向服务器返回给浏览器。

如图:

例如:浏览器访问请求的地址是反向代理服务器的地址114.100.80.10,反向代理服务器收到请求,经过负载均衡算法后得到一个真实物理地址10.0.03,并将请求结果发给真实无服务,真实服务器处理完后通过反向代理服务器返回给请求用户。

优点:部署简单,处于http协议层面。

缺点:使用了反向代理服务器后,web 服务器地址不能直接暴露在外,因此web服务器不需要使用外部IP地址,而反向代理服务作为沟通桥梁就需要配置双网卡、外部内部两套IP地址。

【网络层】IP负载均衡

原理:在网络层通过修改目标地址进行负载均衡。

如图:

用户访问请求到达负载均衡服务器,负载均衡服务器在操作系统内核进程获取网络数据包,根据算法得到一台真实服务器地址,然后将用户请求的目标地址修改成该真实服务器地址,数据处理完后返回给负载均衡服务器,负载均衡服务器收到响应后将自身的地址修改成原用户访问地址后再讲数据返回回去。类似于反向服务器负载均衡。

优点:在响应请求时速度较反向服务器负载均衡要快。

缺点:当请求数据较大(大型视频或文件)时,速度较慢。

【链路层】数据链路层负载均衡

原理:在数据链路层修改Mac地址进行负载均衡。

如图:

负载均衡服务器的IP和它所管理的web 服务群的虚拟IP一致;

负载均衡数据分发过程中不修改访问地址的IP地址,而是修改Mac地址;

通过这两点达到不修改数据包的原地址和目标地址就可以进行正常的访问。

优点:不需要负载均衡服务器进行地址的转换。

数据响应时不需要经过负载均衡服务器。

缺点:负载均衡服务器的网卡带宽要求较高。

目前连路程负载均衡是特别常见的一种手段,典型的产品有LVS(Linux Virtual Server)。

【前言】

负载均衡技术对于中大型网站的性能提高有着很大的优势,最近在学习《大型网站技术的架构》,其中对于负载均衡技术有一些介绍,将学习的经验总结一下,分享下。多交流。

【协议层】http重定向协议实现负载均衡

原理:根据用户的http请求计算出一个真实的web服务器地址,并将该web服务器地址写入http重定向响应中返回给浏览器,由浏览器重新进行访问。

如图:

优点:比较简单

缺点:浏览器需要零次请求服务器才能完成一次访问,性能较差。

http重定向服务器自身的处理能力可能成为瓶颈。

使用http302响应重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名。

【协议层】dns域名解析负载均衡

原理:在DNS服务器上配置多个域名对应IP的记录。例如一个域名www.baidu.com对应一组web服务器IP地址,域名解析时经过DNS服务器的算法将一个域名请求分配到合适的真实服务器上。

如图:

优点:将负载均衡的工作交给了DNS,省却了网站管理维护负载均衡服务器的麻烦,同事许多DNS还支持基于地理位置的域名解析,将域名解析成距离用户地理最近的一个服务器地址,加快访问速度吗,改善性能。

缺点:目前的DNS解析是多级解析,每一级DNS都可能化缓存记录A,当摸一服务器下线后,该服务器对应的DNS记录A可能仍然存在,导致分配到该服务器的用户访问失败。

DNS负载均衡的控制权在域名服务商手里,网站可能无法做出过多的改善和管理。

不能够按服务器的处理能力来分配负载。DNS负载均衡采用的是简单的轮询算法,不能区分服务器之间的差异,不能反映服务器当前运行状态,所以其的负载均衡效果并不是太好。

可能会造成额外的网络问题。为了使本DNS服务器和其他DNS服务器及时交互,保证DNS数据及时更新,使地址能随机分配,一般都要将DNS的刷新时间设置的较小,但太小将会使DNS流量大增造成额外的网络问题。

【协议层】反向代理负载均衡

原理:反向代理处于web服务器这边,反向代理服务器提供负载均衡的功能,同时管理一组web服务器,它根据负载均衡算法将请求的浏览器访问转发到不同的web服务器处理,处理结果经过反向服务器返回给浏览器。

如图:

例如:浏览器访问请求的地址是反向代理服务器的地址114.100.80.10,反向代理服务器收到请求,经过负载均衡算法后得到一个真实物理地址10.0.03,并将请求结果发给真实无服务,真实服务器处理完后通过反向代理服务器返回给请求用户。

优点:部署简单,处于http协议层面。

缺点:使用了反向代理服务器后,web 服务器地址不能直接暴露在外,因此web服务器不需要使用外部IP地址,而反向代理服务作为沟通桥梁就需要配置双网卡、外部内部两套IP地址。

【网络层】IP负载均衡

原理:在网络层通过修改目标地址进行负载均衡。

如图:

用户访问请求到达负载均衡服务器,负载均衡服务器在操作系统内核进程获取网络数据包,根据算法得到一台真实服务器地址,然后将用户请求的目标地址修改成该真实服务器地址,数据处理完后返回给负载均衡服务器,负载均衡服务器收到响应后将自身的地址修改成原用户访问地址后再讲数据返回回去。类似于反向服务器负载均衡。

优点:在响应请求时速度较反向服务器负载均衡要快。

缺点:当请求数据较大(大型视频或文件)时,速度较慢。

【链路层】数据链路层负载均衡

原理:在数据链路层修改Mac地址进行负载均衡。

如图:

负载均衡服务器的IP和它所管理的web 服务群的虚拟IP一致;

负载均衡数据分发过程中不修改访问地址的IP地址,而是修改Mac地址;

通过这两点达到不修改数据包的原地址和目标地址就可以进行正常的访问。

优点:不需要负载均衡服务器进行地址的转换。

数据响应时不需要经过负载均衡服务器。

缺点:负载均衡服务器的网卡带宽要求较高。

目前连路程负载均衡是特别常见的一种手段,典型的产品有LVS(Linux Virtual Server)。

几种负载均衡技术的实现相关推荐

  1. Linux下的几种负载均衡技术小结

    前言 Linux系统的数据包处理能力相当强大,通过Netfilter框架或者策略路由系统,用户可以非常灵活的定义数据包的处理规则.因此在Linux下实现负载均衡自然也是非常简单.笔者在此总结了Linu ...

  2. 亿级PV请求的三种负载均衡技术

    在互联网+不断渗透到生活中的今天,各种各样的网络服务存在在我们身边,他们的访问流量也是大得惊人.一个大型网站(百万PV以上)想要正常访问,单单靠一台服务器是不可能提供稳定服务的.这时候就需要用负载均衡 ...

  3. 亿级PV请求的三种负载均衡技术(转)

    http://www.360doc.com/content/17/1126/23/50145453_707419125.shtml 目录 DNS轮询 LVS负载均衡 DR模式 NAT模式 Full-N ...

  4. linux常见得几种负载均衡,Linux下的几种负载均衡技术小结

    bond是Linux内核自带的多网卡聚合功能.这个功能可以把多个网卡整合成一个虚拟网卡从而同时利用多块网卡传输数据.bond有多种不同的模式用以适应不同的情况.bond主要是从L2链路层考虑的,因此可 ...

  5. IPVS -三种IP负载均衡技术与八种调度算法

    三种IP负载均衡技术        在调度器的实现技术中,IP负载均衡技术是效率最高的.在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务 ...

  6. 小白入门:大型网站技术架构负载均衡技术介绍及学习资源推荐

    十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱.经常在技术网站.文档中出现的"四层负载均衡"."七层负载均衡"字眼有什么含义?有什么区别?对客户网络有哪些不 ...

  7. lvs的调度算法有几种_LVS:三种负载均衡方式比较

    1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很 ...

  8. 移动负载均衡技术(MBL)

    移动负载均衡技术(MBL) 转至元数据结尾 附件:5 被admin添加,被admin最后更新于四月 27, 2015 转至元数据起始 互联网技术发展到今天,已经进入移动时代,很多在传统CS和BS的技术 ...

  9. 企业网站服务器负载均衡技术

    Internet的快速增长使网络服务器,特别是Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力.例如sohu每天会收到数千百万次的访问请求,因此对于提供大负载Web ...

最新文章

  1. PyTorch官方中文文档:torch.optim 优化器参数
  2. Spring Boot + Mybatis 多模块(module)项目的完整搭建教程
  3. final阶段团队贡献分分配
  4. formal method revision
  5. android 蒙版图片带拖动_Android实现蒙版弹出框效果
  6. 微信开发学习日记(二):3个案例
  7. js加密代码的分析[转]
  8. python打开csv文件画散点图_在Python 3.6中从CSV绘制纬度经度
  9. vivado中bit文件怎么没有生成_Xilinx FPGA bit 文件加密
  10. ImageMagick 将PDF转图片命令
  11. mysql错误代码1怎样解决_打开网页提示mysql发生错误,错误号1194,请问下该怎么解决? 爱问知识人...
  12. 超级烧脑惊悚悬疑电影《恐怖游轮》(原片+解说)
  13. 数据可视化如何做会更好
  14. javaEE解决eclipse中不能设置tomcat8.5
  15. 软件设计模式学习总结
  16. 盘点:近一年全球十大数据安全事件
  17. css常见定位、居中方案
  18. rtx web 分级管理系统 二次开发
  19. winxp升级win7教程_PR CC 2015下载和安装教程
  20. Linux——用户账号和管理

热门文章

  1. 个人可以做量化交易吗?
  2. 交换----实验(一)
  3. 干货分享 | 挖到3款好用的配音软件,短视频配音超省心
  4. java中getfield_Java Class getField()用法及代碼示例
  5. 如何在vue中实现文件预览功能
  6. 新媒体运营胡耀文教程:直播间10大话术总结,互动话术不冷场
  7. 课堂练习及课后作业2.3:系统调用
  8. 10进制和64进制互转
  9. WIN7笔记本电脑的语言栏不显示?
  10. 使用Ghost对系统进行备份中出现的NO FAST HIGH是什么意思?