顾名思义,是指将负载进行平衡并分摊到多个操作单元上运行,从而协同完成工作任务。是在网络结构中提供一种扩展网络设备和服务器的带宽、增加网络的吞吐量、加强网络数据处理能力、提高网络灵活性和可用性的软件或硬件结构。

软件

1、基于DNS的负载均衡

由于在DNS服务器中,可以为多个不同的地址配置相同的名字,最终查询这个名字的客户机将在解析这个名字时得到其中一个地址,所以这种代理方式是通过DNS服务中的随机名字解析域名和IP来实现负载均衡。

2、反向代理负载均衡

该种代理方式与普通的代理方式不同,标准代理方式是客户使用代理访问多个外部Web服务器,之所以被称为反向代理模式是因为这种代理方式是多个客户使用它访问内部Web服务器,而非访问外部服务器。如:Nginx,ApacheProxy,lighttpd,Cheroke等。

HAProxy与以上反向代理软件不同,以上都是WEB服务器,而HAProxy不是。HAProxy仅仅是一款用于负载均衡的应用代理,自身不提供Web服务。但其配置简单,拥有非常不错的服务器健康检查功能,还有专门的系统状态监控页面,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。

3、基于NAT(Network Address Translation)的负载均衡技术

该技术通过一个地址转换网关将每个外部连接均匀转换为不同的内部服务器地址,因此外部网络中的计算机就各自与自己转换得到的地址上的服务器进行通信,从而达到负载均衡的目的。其中网络地址转换网关位于外部地址和内部地址之间,不仅可以实现当外部客户机访问转换网关的某一外部地址时可以转发到某一映射的内部的地址上,还可使内部地址的计算机能访问外部网络。

硬件

NetScaler、F5、Radware、Array等商用负载均衡设备。


以下对主要的基于软件的负载均衡做个介绍:

LVS(Linux VirtualServer)
1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;
2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;
3、工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived;
4、无流量,保证了均衡器IO的性能不会受到大流量的影响;
5、应用范围比较广,可以对所有应用做负载均衡;
6、软件本身不支持正则处理,不能做动静分离,这个就比较遗憾了;其实现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在。
7、如果是网站应用比较庞大的话,实施LVS/DR+Keepalived起来就比较复杂了,特别后面有Windows Server应用的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。

Nginx
1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是许多朋友喜欢它的原因之一;
2、Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在;
3、Nginx安装和配置比较简单,测试起来比较方便;
4、也可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;
5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;
6、Nginx仅能支持http和Email,这样就在适用范围上面小很多,这个它的弱势;
7、Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。LNMP现在也是非常流行的web架构,大有和以前最流行的LAMP架构分庭抗争之势,在高流量的环境中也有很好的效果。
8、Nginx现在作为Web反向加速缓存越来越成熟了,很多朋友都已在生产环境下投入生产了,而且反映效果不错,速度比传统的Squid服务器更快,有兴趣的朋友可以考虑用其作为反向代理加速器。

HAProxy
1、HAProxy支持虚拟主机。
2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
3、支持url检测后端的服务器出问题的检测会有很好的帮助。
4、它跟LVS一样,本身仅仅就只是一款负载均衡软件;单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS,所以我向大家推荐LVS+Keepalived。
6、HAProxy的算法现在也越来越多了,具体有如下8种:
①roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
②static-rr,表示根据权重,建议关注;
③leastconn,表示最少连接者先处理,建议关注;
④source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,我们用其作为解决session问题的一种方法,建议关注;
⑤ri,表示根据请求的URI;
⑥rl_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name;
⑦hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
⑧rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

负载均衡(Load Balance)简单介绍相关推荐

  1. Oracle RAC 客户端连接负载均衡(Load Balance)

    实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连 ...

  2. 负载均衡Load Balance(F5 \ nginx \ LVS \ DNS轮询)

    文章目录 一.IP负载均衡 (一)硬件方式 (二)软件方式 二.DNS轮询 三.CDN (一)定义 (二)CDN网络结构 (三)CDN工作原理 在做系统架构规划的时候,负载均衡,HA(高可用性集群,是 ...

  3. 负载均衡设备oracle,Oracle RAC 服务器端联接负载均衡(Load Balance)

    Oracle RAC 服务器端连接负载均衡(Load Balance) Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去.当数据库处于 ...

  4. 负载均衡Load Balance学习

    目录 1. 负载均衡简介 2. 负载均衡算法 3. Nginx负载均衡调度算法源码调研 1. 负载均衡简介 0x1: 负载均衡是什么 负载均衡是一种技术架构方法,它并不是具体指哪一种技术,也正是因为这 ...

  5. LVS 负载均衡集群详细介绍

    目录 0 前言 1 什么是 LVS? 3 为什么要用 LVS? 4 LVS 的组成及作用 5 负载均衡的由来及所带来的好处 6 LVS 负载均衡集群的类型 7 DNS / 软硬件负载均衡的类型 8 L ...

  6. 【高可用HA】Apache (4) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk httpd版本: httpd-2.4.17 jk版本: tomcat-connectors-1.2.41 参考 ...

  7. 负载均衡SLB新功能介绍

    摘要: 随着网络的各个核心部分业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担.通过负载均衡扩展现有网络设备和服务器的带宽.增加吞吐量.加强 ...

  8. php nginx实现负载均衡,使用Nginx简单实现负载均衡

    只是简单使用Nginx而已,知道能这么用,但是在实际项目中并没有实践过,在项目不大的时候用不到,但是对于理解负载均衡来说还是可以的. 利用虚拟机安装了三个CentOS系统,然后顺便装了环境. 这里顺便 ...

  9. 负载均衡:nginx+LVS介绍

    一.nginx(engine x)原理 角色: 分发器 任务: 接受请求.分发请求.响应请求. 功能模块:   1)ngx_http_upstream_module:基于应用层(七层)分发模块   2 ...

  10. LVS负载均衡之持久性连接介绍(session篇)

    在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到 ...

最新文章

  1. 限时删!一套目标检测、卷积神经网络和OpenCV学习资料(教程/PPT/代码)
  2. 嵌入式linux 分区挂载,嵌入式linux系统的开发——文件系统的分区和挂载
  3. qt可视化数据展板_Qt 2D数据可视化之QCharts
  4. 你一定要知道的关于Linux文件目录操作的12个常用命令
  5. 邮件系统之webmail
  6. 有偿数据收集 | 哈工大手写作文图片收集
  7. 人脸对齐(十七)--DenseReg
  8. android 对象传输及parcel机制
  9. C# ManualResetEvent 与 AutoResetEvent 区别
  10. 支付宝小程序人脸识别认证
  11. js 生成条形码(JsBarcode.all.min.js)
  12. 程序员520❤七夕情人节表白代码Html+Js+Css花瓣相册网页模板❤程序员表白必备
  13. linux ubuntu实验
  14. indesign拖进去颜色变灰_INDESIGN CS4第5章 颜色与透明
  15. .net framework 3.5 dotNetFx35setup 能不需要网络支持吗?
  16. C语言实现isalpha函数功能(附完整源码)
  17. 计算机术语中分辨率是什么意思,分辨率是什么?分辨率是什么意思?
  18. 最新北风网人工智能(完整版)
  19. Matlab模拟质点极坐标系中运动规律(螺旋运动)
  20. 仿新浪微博2014之登陆界面四(总体功能)

热门文章

  1. 恒指傻瓜操作系统(一)
  2. 电信物联卡用户看过来:关于电信物联卡销户的八大问题汇总
  3. 树莓派4B通过网线连接笔记本上网
  4. 大数据治理工程师_大数据治理体系的思考,究竟能为大数据工程师行业带来什么,原来!!!...
  5. Android 性能优化必知必会(转载)
  6. matlab射频传输距离计算,VHF和UHF信号的传播距离计算工具
  7. AS3:fla swf 坐标 导出类
  8. ArcMap学习笔记(七)地图制作
  9. 地图信息,障碍判断以及寻路算法(A星算法,B星算法和蚁群算法等)
  10. 小程序自定义导航栏搜索和自定义底部tab(动态切换)