在加速大型可伸缩应用的处理和分析方面,内存数据网格已经显示出了潜力。它们通常会在后端数据库和前端Web应用之间提供一个有用的中间层。现在,它们也开始在所谓的大数据应用中露脸了。
尽管如此,应用内存数据网格(IMDG)时软件架构师还是必须要仔细考虑限制。对于定期调用的一组特定数据IMDG工作得很好。但是如果是不同的数据偶尔被查询的话,IMDG可能并不是最佳的途径。
有时候,对记录的SQL数据系统的需求意味着IMDG的地位要比传统的关系数据库(RDB)低。硬件配置也会影响IMDG对整体系统架构的适应能力。最后管理IMDG的责任有时候会成为IT部门不同部分之间的问题。
Oracle负责开发的副总裁,同时也是Tangosol(现在已是Oracle的一部分)内存数据网格技术的关键开发者的Cameron Purdy说,有两个特别重要的办法可以帮助IMDG减少应用延时。一是降低网络和基于磁盘的通讯,二是以可以更好地在应用中工作的对象格式来展示数据。
Purdy解释说:“IMDG对很多东西都有好处,但是如果把它用在错误的问题上则会适得其反。它们可以很好地应用在内存数据集上。在内存中处理PB级的信息并非你想去尝试的东西。这方面有许多专门的系统能够把这种规模的信息分析处理得更好。”
另一个因素是使用的数据模型。Purdy说:“如果应用把数据当做对象处理,那么用数据网格就很好。可是如果应用把数据当做SQL数据的话,可能最好还是用SQL数据库。如果应用与SQL语言对话,用数据网格去加速实现的效果往往是糟糕的。”
数据分区和数据关联是部分非常适合于数据网格架构的概念。当存在一个可工作好的领域模型时,数据网格工作得最好。“有较弱的数据模型或没有数据模型的应用在采用数据网格时的问题最大,”Purdy说。问题还需要在多个服务器之间方便地进行分割。
“分布式缓存只有在应用本身也是分布式的情况下才有意义—也就是说,出于伸缩性和/或可用性的原因需要运行在超过一台机器上,”Ron Pressler说:“如果分布式缓存是为了提供对数据的低延时访问,那它就必须距离运行的应用代码很近—比方说,驻留在运行应用的同一台机器上,或者通过复制来提供可伸缩性。在其他情况下,缓存会把自己的数据存储到多台机器上。”Ron Pressler是以色列技术公司Parallel Universe的创始人兼CEO。
应用的数据访问行为在确定数据网格是否最佳方案中可以扮演重要角色。Pressler解释说:“如果应用显示出一致的数据访问模式,像不断访问一个数据子集,或者同时访问可轻易识别的条目组,我们就可以说该应用有着好的数据局部性,缓存将会显著改善其性能。对于应用分布式缓存的应用来说,最大的挑战是提高数据局部性。这往往要通过对领域进行认真思考,并找出要缓存的东西是什么,以及如何展现缓存的数据—如非标准化来达到。”
内存数据网格开始在分析金融等领域的实时大数据应用中扮演角色,这些领域的数据集往往有着数TB之巨大的热门数据。尽管它们也可以用在其他地方,如根据Web日志重构用户会话,但Purdy说,别的解决方案,如Hadoop可能会更合适。此外,IMDG也可以作为可伸缩云应用的使能技术。
“数据网格是云基础设施的关键组件之一,”Purdy说。IMDG有希望能够根据需求变化简化伸缩的流程。比方说,如果你使用的是EC2,增加了100台服务器,有一个数据网格来在这些服务器之间伸缩变化,看到的都是相同的实时信息,相互都了解对方,且不是100个不同的app,那么数据网格就会变得非常宝贵。如果你没有能力以一种安全可靠的方式进行管理、可视化以及访问,那么在云端建系统就会变得更加困难。
缺少标准接口是个值得注意的问题。为了解决这一需求,行业正在联合推动即将出台的javax.cache规范(在JSR107框架内)。
“对于云计算,我们已经看到所有主流IaaS供应商都引入了缓存作为服务。因此这已经成为了基础设施的一个标准部分。而面向云部署的Java EE 7,也将会出于同样的原因吸纳javax.cache,”Greg Luck说。Luck是Terracotta的CTO,也是基于标准的开源缓存Ehcache的原始开发者。
跟其他人一样,Luck也看到了IMDG和云计算之间天然的紧密关系。他指出,相对于磁盘内存,云对IMDG使用的固态内存有一点偏好。
“磁盘很慢,可是由于虚拟化以及NIC(网络适配器)共享、网络连接、物理驱动器的原因,云磁盘比它还要慢得多,”他说。但是IMDG并非适合于所有的大型应用。Luck说:“在多次读取相同的数据时缓存工作得很好。”
各种类型的数据都非常适合于内存数据网格,但是有些类型也许需要特殊的处理。Jason Andersen是Red Hat的资深产品经理,他负责的是JBoss Enterprise Portal Platform。Jason说:“如果有监管或审计要求,那么可能需要有手段能够将数据推到像关系数据库那样的基于磁盘的数据解决方案上。当数据网格被用于所谓的数据库起搏器时往往就会看见这种需求。所谓数据库起搏器就是用数据网格来加速应用对数据库的访问。不过最终记录的系统还是数据库。”
另一个问题是管理IMDG的责任分配。Andersen指出:“数据在习惯上一般由DB管理员和操作员管理,而缓存往往是应用结构的一部分。我们已经看到出现了一些情况,在确定由谁来对解决方案负责这个问题有一点纠结。”
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
打造衢州城市大脑:人工智能和大数据如何发挥作用
2017年12月18-19日,2018年“雪亮工程”重点支持城市(区)项目建设现场培训班和浙江省“雪亮工程”建设现场会在衢州召开。衢州“雪亮工程”领导小组向来自数十个地市的专家、领导介绍了工程建设阶段性成果。
-
智能+大数据:云+互联时代如何创造精准营销
在云计算和大数据技术的推动下,正在走向智能应用、便捷功能与效果体验,消费者的转移带动了精准营销方式的改变,因此广告企业推广也慢慢转移到了移动端广告的投放。
-
万物互联时代:行业移动化何去可从
互联网的本质毋庸置疑是“连接”。然而,随着智能终端设备的普及,互联网正在步入万物互联时代,相比PC、移动互联网时代,万物互联时代会更加碎片化、场景化、设备化。
-
云端宿州汇聚产业 华为力助城市跨越发展
6月9日,以“云聚产业 数赢未来“为主题的2017华为.宿州云产业合作高峰论坛在宿州顺利举行。会议吸引了多地区 […]