APP下载

云计算分布式缓存技术在海量数据处理平台中的应用

2016-03-02段春梅

智能计算机与应用 2016年1期

段春梅

摘 要:随着云计算和大数据时代的到来,在满足用户对系统访问量、访问速度、访问安全的要求的同时,系统必须实时准确的处理迅猛增长的海量数据,而传统的缓存技术无法满足海量数据处理和用户高并发访问的需求。分布式缓存技术是最好的高性能缓存解决方案。本文研究如何利用云计算下分布式缓存技术在海量数据处理平台中解决该问题,分析研究了分布式缓存的关键技术、分布式缓存的一致性和分布式内存数据管理。在此基础上,分析并设计了分布式缓存系统的部署和整体架构。并将该分布式缓存系统的设计模式应用在某团购网上,行了POC测试。测试结果证明分布式缓存技术可以缓解服务器的压力,解决海量数据和超高并发数据访问所带来的问题,提升了系统的性能、访问速度、可靠性以及降低响应延迟。

关键词:分布式缓存技术;海量数据;分布式内存数据管理;验证性测试

中图分类号:TP393.4 文献标识号:A 文章编号:2095-2163(2016)01-

Abstract:With the advent of the era of Cloud Computing and big data, massive data increased rapidly must be real-time accurately processed by the system, and requirements of visits to the system、access speed and access security to users are meeted at the same time, but Traditional caching technology can't meet the needs of massive data processing and high concurrent access to the users. Distributed caching t techniques is one of the best solution of high-performance cache.How to solve the problems in the mass data processing platform using distributed cache techniques of cloud computing is researched,and the key technology of distributed cache, consistency of distributed cache and distributed memory data management are also explored. Based on the aboved, deployment of distributed cache system and the overall architecture are analyzed and designed.And the design mode of the distributed cache system is used in the group buying site, and be tested by POC. Test results show that distributed cache techniques can alleviate the pressure of the server, solve the problems of massive data and high concurrent data access, and improve performance and access speed adn reliability of the system, simultaneously reduce the response delay.

Key words: distributed cache techniques;massive data;distributed memory data management;POC test

0 引言

随着云计算的发展,越来越多的企业都会搭建自己的云平台,同时越来越多的应用程序都是以云平台为支撑,为用户提供云服务。随着互联网上应用系统的访问用户增加、某些电子商务网站特定时间的促销活动而引发的特大规模的数据等等,使得在云服务普及推广的同时,数据访问量、访问速度、访问安全的需求都在急剧增加,而云计算的分布式处理、分布式数据库和云存储、虚拟化技术为海量数据进行分析处理提供了技术支持和基本保证。同时用户对云服务的数据提交及服务响应的时限要求也日渐提升,因而针对海量数据的数据库高并发访问的现实解决处理则需要立足于有关分布式缓存技术的先导性研究和关联式内容整合基础之上的。本文即围绕这一课题内容展开如下设计论述。

1 分布式缓存技术

分布式缓存技术可以解决数据库服务器和应用服务器之间的瓶颈问题,提高对数据的访问速度。分布式缓存的思想是分而治之,将数据分别布设到多个缓冲服务器上,使用缓存阵列路由协议,如此即使得多台缓存服务器形同一台,对外统一数据的访问接口,从而产生一种高效率无接缝式的缓存。

分布式缓存具有高性能、动态扩展性、易用性、高可用性、分布式代码执行等特点。而且为了解决大并发下的性能问题,同时避免过高的响应延迟,分布式缓存抛弃原始的关系型数据库,采用key/value 形式存储数据,同时配以高速内存作为存储介质,这样可以保证系统的高性能性、动态可扩展性。不仅如此,分布式缓存又采用NRW多副本机制,避免缓存的单点故障问题,从而在提高数据访问速度的基础上,进一步保证数据的可靠性、最终数据一致性。分布式缓存系统还应实现数据冗余机制,藉此最终保证系统的安全性。

分布式key/value内存数据库大多通过在客户端充分发挥分布式逻辑功能来有效实现多种数据类型的分布式缓存,使用内存数据库可以显著提高数据访问速度及系统性能。常见的分布式key/value数据库内存缓存系统有Oracle Coherence、dbcached、IBM WebSphere eXtreme Scale、Redis、Memcached、Vmware Gemfire、MemCache[1]等。

1.1 数据分区

数据分区中经常使用的就是一致性哈希算法。一致性哈希算法(Consistent Hashing),最早由麻省理工学院于1997年提出,主要用于解决因特网中热点问题。时下,一致性哈希算法更多见于数据分布式技术中。分布式缓存中的一致性哈希算法的主要原理是:计算出缓存服务器各个节点的哈希值,将其包含的所有缓存服务器节点抽象为一个环即哈希环,再将根据哈希函数计算出的缓存服务器哈希值分配到哈希环中,该环的数值域为0~232-1。然后对缓存的数据对象进行哈希计算,并分配到哈希环上。最后按顺时针方向将缓存数据对象映射到离其最近的缓存服务器节点上去。若增加或减少缓存服务器,则只需要局部改变该缓存服务器逆时针方向的缓存数据位置即可。

在缓存数据较少的情况下,数据对象可能无法均匀分布,而且缓存服务器集群里的服务器的性能和容量也可能未获统一,此时为了保证绝对的平衡,一致性哈希算法就相应引入了“虚拟节点”,一个物理的缓存服务器节点将根据自身性能对应了若干个“虚拟节点”,从而缓解物理服务节点少时数据倾斜等负载不均衡问题的发生,从而实现了数据的均匀分布[2-3]。

1.2 分布式缓存的一致性

分布式缓存可以提高数据读取速度,降低数据读取延迟时间、减轻服务器负载压力,因而在整体上优化了系统可靠性;虽然能够获得良好的读取性能,但在更新数据时却会存在重大的数据不一致的风险,由此导致数据脏读等现象出现。为了保证客户端总能读到最新的数据,分布式缓存可以通过多副本机制(NRW)和租约机制(Leases)来支持实现分布式缓存数据的一致性;而在达成此一目的的过程中,分布式缓存系统却要因所采取的相应措施而支付一定的开销,这就可能降低系统的性能,所以即需要在系统的可靠性、高性能和数据一致性问题上取得平衡。综上可知,为解决数据一致性问题,就需要考虑数据读取/更新流程、数据同步、副本问题等。分布式系统中对于数据的存储将支持采用多副本机制,即采用多份数据副本存放在不同节点上, 每个物理缓存服务器上存储自身的缓存数据以及其他节点的热备数据,读取或者更新数据时将需要对多个副本进行同时操作;分布式缓存系统也提供了轮询操作,可以每隔一定时间轮询数据库,并在更新数据时进行数据同步,读取数据更新后的全新副本。

Quorum的NRW机制当中,N代表数据的所有副本数,R代表示完成一次成功的读操作所需要读取的最小副本数,W代表完成一次写操作所需要写入的最小副本数。在NRW多副本机制中,只要满足R + W>N条件,就保证了数据不同副本中的一致性,因此R和W的设置是否合理则将影响系统的性能和数据的一致性,而Quorum机制却具备了更新数据时减少需要即刻完成的副本数,读取数据增加需要读取的副本数,即读写操作的平衡扩展功能,从而保证了系统性能的提高和数据的一致性[4]。

1.3 分布式内存数据管理

Oracle Coherence是Oracle提供的一款适用于应用层的集群数据管理和分布式内存数据管理的现实理想解决方案。Coherence可以提供完善的读取性能、极低的延迟时间、高吞吐量、数据可靠性、100%的事务完整性、容错性、良好的动态可扩展性、持续的可用性、并行处理、支持锁和事务处理、自动代理服务和动态负载均和支持超级大容量的缓存等强大的功能。

对于由Coherence组成的缓存服务器集群,其集群的节点的地位不分主次,可以自动执行集群节点的检测和删除,节点之间采用P2P协议进行数据通信。Coherence能够实现集群管理,并提供各种缓存服务。数据存储在Coherence缓存当中,集群当中的每个节点都会备份全部数据,所以Coherence集群呈现有出众的可靠性,只要有一个节点能正常运行,就能保证系统不致瘫痪,但其缺点却是更新速度相对而言较差。

Coherence设有两个非常重要的配置文件,分别是:缓存配置文件和运行配置文件。其中,缓存配置文件,用于配置缓存的类型及模式、缓存策略、服务的分配等信息。运行配置文件则用于缓存集群配置文件路径、日志配置文件路径、缓存数据配置文件路径、并进一步具体设定集群配置文件及集群的通信、服务机构组成等信息[5-[6]。

2 分布式缓存模式设计

为了满足网站高并发访问,搭建一个由多台分布式缓存服务器组成的分布式缓存服务器集群,该集群结构采用无主架构,服务器节点地位不分主次,数据均匀分布在集群各服务器节点上,节点数越多,其数据处理能力也越强。分布式缓存服务器提供支持该缓存服务器通信协议的客户端,通过客户端可以与分布式缓存服务器进行通信以及相关操作。其现实通用的分布式缓存系统的部署设计则如图1所示[5]。

由图1可见,该分布式缓存部署设计的优势特点可做如下描述:

(1)将程序应用与缓存分开部署,缓存系统部署在缓存服务器集群上,可通过增加缓存服务器节点自动在线扩展集群规模,具有良好的可伸缩性。

(2)一般分布式缓存系统支撑多种语言客户端,在应用服务器上可以开发出丰富多样的应用程序客户端,并通过一致性哈希算法等路由算法将数据均匀分散到不同的缓存服务器节点上,而且自动在其它节点生成备份,或者选择不同的缓存服务器远程实现访问该缓存服务器上的数据。

(3)在缓存服务器集群中,若某缓存服务器节点故障则会自动启用其它节点的备份数据,保障服务器集群系统能正常运行。同样,可以根据需要动态增加或减少缓存服务器节点,提高资源利用率。

(4)在分布式缓存系统中,尽量只读缓存数据,因为缓存不适合大量写和更新操作。缓存系统在设计时尽量做到读写分离。

综合考虑分布式缓存的功能以及分布式内存数据的模型原理体系结构,通过zookeeper分布式服务协调机制获得了具体有效的整合,从而实现一个分布式缓存架构。分布式缓存整体架构图如图2所示[7]。

3 分布式缓存数据处理系统的测试

分布式缓存技术已然广泛地应用在海量数据处理平台中,并且尤其着重支持高并发、高访问量、低延迟的读多更新少的数据处理系统。本文针对分布式缓存技术在海量数据处理平台中的应用测试则是以某团购网的查询功能作为实例背景而进行系统展开,并获取研究结果和结论的。

本次测试主要针对团购商品的模糊查询、规则引擎应用、订单查询等典型的使用分布式缓存的应用场景进行分布式缓存POC测试。测试的内容包括功能测试、性能测试和可靠性测试。

针对团购网实际使用场景,构造测试案例对Coherence进行功能、性能和可靠性测试。首先是测试环境的搭建,其中包括在机器的ip地址上建立服务器集群主控环境。本次测试采用一台http服务器,两台分布式缓存服务器,而http服务器端采用Java客户端进行测试,缓存服务器采用Oracle Coherence[8]。

(1)针对团购网的商品模糊查询为例进行POC测试,其测试的记录数为7 200 000,Cache实例数为40 * 2,每个实例Java heap size为2gb。查询的输入为:并发数(用户个数*每个用户的读取次数),输出为平均每次读取的时间,实际的测试结果如表1所示。其中CPU的最大使用率可达41%,而其平均使用率则为35%。

(2)针对分布式缓存系统环境进行可靠性测试,包括各缓存节点的数据恢复及数据完整性测试。首先进行测试的是针对无任何操作前提下,删除或者增加一个缓存实例,数据恢复所需要的时间,然后运行商品模糊查询测试时,数据恢复所需要的时间。测试结果如表2所示。

可靠性的测试还包括缓存节点的完整性测试,可以通过并行删除多个缓存节点后,验证数据的完整性。通过POC测试可知:该分布式缓存系统能满足应用要求以及符合系统性能要求,采用的分布式内存数据管理具备高可靠性和高扩展性,包含强大的容错特性和支持服务器自我修复的功能。

4 结束语

随着云计算的发展,通过物联网和互联网产生的数据呈几何级数增长,同时网上用户也在不断大幅度增加,随之而来的海量数据和用户高并发访问的问题对传统的缓存提出了挑战。针对这一状况,本文研究如何利用云计算下分布式缓存技术在海量数据处理平台中解决该问题,从而保证系统的高性能,高访问速度,低延迟、高可靠性。首先分析研究了分布式缓存的关键技术、缓存替换策略、分布式缓存的一致性和分布式内存数据管理。然后提出并论述了分布式缓存系统的部署和整体架构设计。最后将该分布式缓存系统的设计模式应用在某团购网上,并进行了POC测试,证明其可行性。

参考文献:

[1]崔解宾. 分布式内存缓存技术在数据处理平台中的研究与应用[D].北京:北京邮电大学,2015.

[2]黄菊. 分布式缓存技术及其在车辆监控系统中的应用[D].北京:北京邮电大学,2015.

[3]张晓慧. 试析云计算分布式缓存技术在物联网中的实施要点[J]. 计算机光盘软件与应用,2014(15):50-51.

[4]高洪,董振江. 云计算分布式缓存技术及其在物联网中的应用[J]. 中兴通讯技术,2012,17(4):37-42.

[5]秦秀磊,张文博,魏峻,等. 云计算环境下分布式缓存技术的现状与挑战[J]. 软件学报,2013,24(1):50-66.

[6]梁德锋.Oracle Coherence入门[Z]. 北京:百度文库,2010.

[7]李玉玲, 张东旭, . 虚拟现实环境下的分布式服务器架构策略研究[J/OL]. 计算机工程与应用, http://www.cnki.net/kcms/detail/11.2127.TP.20150313.1547.009.html

[8]顾荣庆,杨开杰,徐汀荣. 分布式数据缓存技术研究[J]. 计算机应用与软件,2011,28(6):202-204.