基于冗余扩展技术系统架构探究

基于冗余扩展技术系统架构探究

ID:31778485

大小:56.04 KB

页数:5页

时间:2019-01-18

基于冗余扩展技术系统架构探究_第1页
基于冗余扩展技术系统架构探究_第2页
基于冗余扩展技术系统架构探究_第3页
基于冗余扩展技术系统架构探究_第4页
基于冗余扩展技术系统架构探究_第5页
资源描述:

《基于冗余扩展技术系统架构探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于冗余扩展技术系统架构探究摘要:构建可扩展的系统是计算机科学研究中的一个重要课题,也是工程实践中常常面临的一个问题。本文将结合某公司的经验,介绍在实际生产环境中如何设计一个可扩展的系统架构。关键词:负载均衡;缓存;CDN;冗余中图分类号:TP302.8随着网络应用的普及,用户需求的不断变化,如何构建一个可扩展的应用系统已经成为互联网公司发展过程中必须重视的首要问题。本文集中介绍了实现可扩展系统的几种方式,通过这些方式可以增加系统的水平扩展性和冗余性。1扩展性与冗余一个理想的系统架构是它的性能会随着硬件的

2、增加而线性增长。在这样的系统中,如果原本有一台机器,当再增加一台机器时,系统性能会提升到原系统性能的两倍;如果原本有三台机器,当再增加一台机器时,系统性能会提升33%o系统的这种能力我们称之为水平扩展。如果系统中的部分机器出现故障,系统的性能会相应降低,但整个系统依然能够正常运行,系统的这种能力我们称之为冗余。水平扩展性和冗余都需要通过负载均衡来实现。2基于负载均衡技术的冗余扩展系统负载均衡就是将收到的请求按照一定的算法分发到不同的服务器上的过程。常见的负载均衡算法有随机法,轮询,带权重随机,比率,优先权

3、,最少连接数,最快响应速度,观察方法,预测法,动态性能分配等方法[1]。负载不但需要在用户请求和服务器之间进行平衡,同时也需要在其他各个阶段进行平衡,这样才能更好的获得扩展性和冗余。通常来说一个大型系统需要在以下三个层面来实现负载均衡,如图1所示:(1)用户请求到前端web服务器;(2)前端web服务器到内部的后端平台层;(3)后端平台层到数据库;图1基于负载均衡技术可扩展系统架构在负载均衡的实现方式上,可以选择以下几种方式:2.1使用智能客户端。这种方式是在数据库客户端添加负载均衡的能力,实现过程是在客

4、户端添加一个服务池,然后在客户端进行选择连接到哪个服务器。这种方式实现起来相对比较复杂。2.2硬件负载均衡这种方式直接在硬件层面完成请求的分配,可以获得很高的性能,但是成本也相对较高,一般是直接购买其他公司的硬件设备[2]。另外硬件负载均衡一般配置功能有限,所以只能适用于一些特定的环境。大公司一般会使用硬件负载均衡来处理最外端的请求,实现第一层负载均衡。然后在配合其他的方式在后端实现更加具体的请求分发。2.3软件负载均衡软件负载均衡是使用软件的方式来进行请求分发[2]。HAProxy就是一个很好的例子,H

5、AProxy运行在每一个服务器结点上,它会自动检测每个结点是否可用,然后维护一个可用结点的服务池,并自动在这些结点之间进行请求分发。因为是软件实现,所以具备高度的可配置性。所以相对于硬件负载均衡和智能客户端来说,本文更推荐使用软件负载均衡。3基于缓存技术的冗余扩展系统缓存能够更好的使用系统中现有资源,减少对数据库的访问。缓存主要包括对结果的提前计算,提前生成索引,经常访问数据的存储。在实践中,使用缓存非常重要,设计一个好的缓存系统不仅提高了用户的访问质量,同时有效地降低了源服务器的负载压力,从而提升系统的

6、整体性能[3]。在Web应用中,缓存主要分两种,一种是应用程序缓存,另一种是数据库缓存。应用程序级缓存一般是要在手动在代码中实现,当对某个数据进行请求时,先查看该数据是否在缓存中,如果存在,则直接从缓存中返回,如果不存在则从数据库中取出数据,并将该数据放入到缓存中,如图2所示。而数据库缓存一般是由数据库图2应用程序缓存可扩展系统架构提供的功能,数据库会根据DBA的配置,将数据库中的一部分数据缓存起来,当程序访问数据库时会直接从缓存中返回数据,图3数据库缓存可扩展系统架构如图3所示。图2图34基于内容分发网

7、络的冗余扩展系统内容分发网络(CDN)是一个典型的应对大规模静态数据的缓存方式[4,5],如图4所示。CDN结点将静态数据从服务器中分离出来,并且能够实现地理位置上的分布,用户从CDN上获取静态数据将会比从服务器上获取动态数据更加快速。在一个典型的CDN网络中,用户请求到来以后首先到CDN结点请求静态资源,如果该资源在本地CDN结点上存在,则直接返回,否则会到你的服务器上查找,然后将该资源缓存到本地CDN结点上。如果系统目前还不是很大,就不需要使用CDN,那么可以将你的静态数据分离出来,放到单独的服务器上

8、,比如NGINX上,当系统需要使用CDN时,就可以直接将这部分数据放到CDN±o图4CDN系统架构参考文献:[1]罗拥军,李晓乐,孙如祥.负载均衡算法综述[J].科技情报开发与经济,200&V0L.18No.23.[2]周莹莲,刘甫•服务器负载均衡技术研究[J].计算机与数字工程.2010,Vol.38No.4.[3]贺琛,陈肇雄,黄河燕.Web缓存技术综述[J].小型微型计算机系统,2004,Vol.125No.5.[1]张

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。