您的位置:首页 > 运维架构 > 网站架构

Web基础架构:负载均衡

2017-05-03 09:32 218 查看
需求描述

        1.可伸缩性:当服务的负载增长时,系统能被扩展来满足需求,且不降低服务质量。

        2.高可用性:尽管部分硬件和软件会发生故障,整个系统的服务必须是7*24可用。

        3.可管理性:整个系统可能在物理上很大,但应该容易管理。

        4.价格有效性:整个系统实现应该是经济的、易支付的。

 集群系统在成本消息上的高度可扩展性正是实现需求的有效思路。

负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。

负载均衡设备的任务就是作为应用服务器流量的入口,挑选最合适的一台服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。在客户端看来,就好像它面对的是一个拥有近乎无限能力的服务器,而本质上,真正提供服务的是后端的集群。



负载均衡的分类

负载均衡可以使用硬件设备实现,也可以使用软件来实现。

常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是贵。

软件的费用比较低廉,一般对软件负载均衡的使用是随着网站规模的不同来使用的。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV(page view)小于1000万,用Nginx就完全可以了;如果机器少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站或重要的服务,可以考虑用LVS。

Nginx

http://network.51cto.com/art/201005/198212_all.htm

1.Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在;

2.Nginx安装和配置比较简单,测试起来比较方便;

3.可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;

4.Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;

5.实现了可弹性化的架构,在压力增大时可以临时添加tomcat服务器到架构中。

Nginx负载均衡设置:

IP地址

Nginx(主负载均衡器):192.168.1.106

Nginx(从负载均衡器):192.168.1.107

VIP地址:192.168.1.108

Tomcat1的IP:192.168.1.102

Tomcat2的IP:192.168.1.103

Tomcat3的IP:192.168.1.105

①首先分别在3台tomcat主机上布置java环境,安装tomcat。

②分别在二台nginx负载均衡器上安装nginx及配置。

③在二台Nginx机上安装及配置keepalived,做双机互备。

 

keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

 

LVS(Linux Virtual Server)

http://network.51cto.com/art/201110/298992.htm

LVS采用IP负载均衡技术和基于内容请求分发技术。调
4000
度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

特点

1.负载能力强,在负载均衡软件里性能最强;

2.配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;

3.工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived;

4.无流量,保证了均衡器IO的性能不会收到大流量的影响;

5.应用范围比较广,可以对所有应用做负载均衡;

6.如果是网站应用比较庞大的话,实施LVS/DR+Keepalived起来就比较复杂了,特别后面有Windows Server应用的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。

LVS集群结构

LVS主要组成部分:

1.负载调度器,它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

2.服务器池,是一组真正执行客户请求的服务器,执行的服务器一般有WEB、MAIL、FTP和DNS等。

3.共享存储,它为服务器池提供一个共享的存储区,这样易使得服务器池拥有相同的内容,提供相同的服务。

LVS负载均衡方式:

1.Virtual Server via Network Address Translation NAT(VS/NAT)

2.Virtual Server via IP Tunneling(VS/TUN)

3.Virtual Server via Direct Routing(VS/DR)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: