LVS和Nginx实现负载均衡功能的比较

lvs( Linux Virtual Server),意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。已经是整合在linux内核中 , LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。由于lvs是工作的网路4层(网络层)基础上,相比于haproxy和nginx等工作在7层上,性能更好,当然,也有自己的弊端,对一些应用层上的更细颗粒度的过滤就相对弱一点。

Nginx——Ngine X,是一款自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行Http服务处理,也可以作为反向代理服务器使用。

Nginx 解决了服务器的C10K(就是在一秒之内连接客户端的数目为10k即1万)问题。它的设计不像传统的服务器那样使用线程处理请求,而是一个更加高级的机制—事件驱动机制,是一种异步事件驱动结构。

虽然目前Nginx的份额在市场上只占很少部分,但是其高性能和低消耗内存的结构,使得其越来越普遍,典型的一个应用就是我们可以使用Nginx作为反向代理进行网站的负载均衡器。例如:Wordpress、GitHub等知名的网站都使用到了Nginx。

 

了解nginx的常用配置

设备的状态有:

a)down表示当前的server暂时不参与负载

b)weight权重,默认为1. weight越大,负载的权重就越大

c)max_fails 允许请求失败的次数默认为1. 当超过最大次数时,返回proxy_next_upstream 模块定义的错误

d)fail_timeout max_fails次失败后,暂停的时间

e)backup备用服务器,其它所有的非backup机器down或者忙的时候,请求backup机器,所以这台机器压力会轻


 

 

LVS(Linux Virtual Server, linux虚拟服务器),是章文嵩博士开发的开放软件,目前已经集成到Linux内核中。

基于不同的网络技术,LVS支持多种负载均衡机制。包括:VS/NAT(基于网络地址转换技术)、VS/TUN(基于IP隧道技术)和VS/DR(基于直接路由技术)。

此外,为了适应不同的需要,淘宝开发了VS/FULLNAT,从本质上来说也是基于网络地址转换技术。最近还有一个基于VS/FULLNAT的DNAT模块。

不管使用哪种机制,LVS都不直接处理请求,而是将请求转发到后面真正的服务器(Real Server)。不同的机制,决定了响应包如何返回到客户端。

 

负载均衡
它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

你可能感兴趣的:(大数据)