软/硬件均衡器的对比总结

来源:互联网 发布:淘宝介入处理有用吗 编辑:程序博客网 时间:2024/05/16 04:49

本文主要摘自以下博文
http://yuhongchun.blog.51cto.com/1604432/697466
http://blog.csdn.net/chabale/article/details/8956717
对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。下面简单介绍下软负载均衡器和F5硬负载均衡器这两种技术,可以从会话率,会话并发能力,数据率三个方面来评估负载均衡器的性能。
软件负载均衡解决方案
一般在一台服务器的操作系统上,安装一个附加软件让其作为前端代理服务器来接受用户的连接请求,然后将请求转发给内部网络上的服务器进行处理,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。常用的负载均衡软件有LVS,Haproxy,Nginx;采用软件策略的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分的负载均衡需求。

LVS是使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。
LVS特性:

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

常用4种算法:
Round Robin:轮叫,轮流分配到后端服务器;
Weight Round Robin:权重轮叫,根据后端服务器负载情况来分配;
Least Connections:最小连接,分配已建立连接最少的服务器上;
Weight Least connections :权重最小连接,根据后端服务器处理能力来分配。
可以采用ipvsadm –p(persistence)来保持session,默认是300/s

Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx的代码是由一个核心和一系列的模块组成,核心主要用于提供Web Server的基本功能,以及Web和Mail反向代理的功能;还用于启用网络协议,创建必要的运行时环境以及确保不同的模块之间平滑地进行交互。不过,大多跟协议相关的功能和某应用特有的功能都是由nginx的模块实现的。
Nginx特性:

  • Nginx对请求的异步处理(epoll)可以帮助节点服务器减轻负载,低系统资源消耗;
  • Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在;
  • Nginx安装和配置比较简单,测试起来比较方便,可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;
  • 工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活;
  • Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;
  • Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。LNMP现在也是非常流行的web架构,大有和以前最流行的LAMP架构分庭抗争之势,在高流量的环境中也有很好的效果;
  • Nginx仅能支持http和Email,这样就在适用范围上面小很多,这个它的弱势;

常用4种算法:
Round Robin:(默认)轮询,轮流分配到后端服务器;
Weight:根据后端服务器性能分配;
IP_hash:每个请求按访问ip的hash结果进行分配,并发小时合适,解决session问题;
Fair:(扩展策略),默认不被编译nginx内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。

HAProxy是免费、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。
HAProxy特性:

  • 支持url检测后端的服务器状态;
  • 支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
  • 能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作;
  • 它跟LVS一样,本身仅仅就只是一款负载均衡软件;单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
  • TCP层多用于对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS,建议使用LVS+Keepalived。

常用8种算法:
Round Robin:表示简单的轮询,这个是负载均衡基本都具备的;
static-rr:表示根据权重;
Least Connections:表示最少连接者先处理;
source:表示根据请求源IP,跟Nginx的ip_hash算法相似,可以用其作为解决session问题的一种方法;
uri:表示根据请求的URI;
url_param:表示根据请求的URl参数,’balance url_param’ requires an URL parameter name;
hdr(name):表示根据HTTP请求头来锁定每一次HTTP请求;
rdp-cookie(name):表示根据据cookie(name)来锁定并哈希每一次TCP请求。

硬件负载均衡解决方案
直接在服务器和外部网络间安装负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。 一般而言,硬件负载均衡在功能、性能上优于软件方式,有专业的维护团队来对这些服务进行维护,不过成本昂贵,比如最常见的就是F5负载均衡器。

F5 BIG-IP是应用交付网络的全球领导者F5 Networks公司提供的一个负载均衡器专用设备,F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙—包过滤、包消毒等功能。

F5 BIG-IP用作HTTP负载均衡器的主要功能:

  • 具有动态Session的会话保持功能。
  • 它的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。
  • 提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。
  • 可以对RealServer进行健康状况检查;假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。
0 0
原创粉丝点击