具有内存数据结构的现代应用程序设计

在本文中, “使用Apache Ignite进行高性能内存计算”一书的作者讨论了使用Apache Ignite进行现代应用程序体系结构的设计。 本文的一部分摘自本书

让我们快速看一下传统系统的体系结构。 传统的应用程序体系结构使用具有同步读写操作的数据存储。 这对于数据一致性和数据持久性很有用,但是如果队列中有大量事务等待,很容易成为瓶颈。 请考虑以下传统架构,如下所示。

大批量交易处理。

内存数据网格在环境中添加了一个附加层,该层使用服务器的随机存取存储器(RAM)来存储应用程序所需的所有所有数据中的大多数。 内存数据网格位于应用程序服务器和数据存储之间。 内存数据网格使用客户端在活动内存中频繁访问的数据的缓存,然后可以在需要时访问持久性存储,甚至可以异步地从持久性存储发送和接收更新。 带有内存数据网格的应用程序架构如下所示。


通过使用内存中的数据网格,数据可以更靠近应用程序端点。 这种方法减少了响应时间,并且可以将事务处理时间从几秒缩短到几分之一秒。 这样,应用程序可以支持涉及TB级操作数据的大量并发事务,从而为客户提供更快,更可靠的事务体验。 与传统的RDBMS相比,它也是一种更现代的可伸缩数据管理系统,能够随着需求的增加而灵活地扩展。

弹性的网页加速。

借助Apache Ignite之类的内存中数据网格,您可以提供Web应用程序的容错能力并提高Web应用程序的性能。 无需更改任何代码,您就可以通过缓存在Web应用程序之间共享会话状态。


上述方法提供了最高级别的系统高可用性和客户体验。 由于Ignite是内存解决方案,因此用户Web会话的Web会话群集和复制机制的性能非常高。

事件处理和实时分析。

数据讲述了您的企业目前在后台遇到什么。 将物联网作为连续的数据源,利用热数据的机会比以往任何时候都大。 传统的数据管理系统无法足够快地处理大数据,以在发生重要事件时通知业务,例如在线信用卡欺诈检测或风险计算。 Apache Ignite允许在内存中以可伸缩且容错的方式处理连续不断的数据流,而不是在数据到达数据库后对其进行分析。


这不仅使您能够关联关系并从大量数据中检测有意义的模式,从而可以更快,更高效地处理数据。 当服务器发生更改时,Apache Ignite内存数据网格可以管理大量传入数据,并将通知推送到业务应用程序。 Apache Ignite连续查询功能使系统可以快速访问大量传入的永无止境的数据并采取措施。

分布式方式的微服务。

微服务架构具有许多好处,并实现了一定程度的模块化,而在实践中,使用单一代码库很难实现。 诸如Apache Ignite之类的内存数据网格可以为同一分布式集群中的相应微服务提供独立的缓存节点,并为您提供了一些优于传统方法的优势。


它允许您最大程度地使用数据结构/网格资源。 在内存群集中运行的服务比基于磁盘的应用程序服务器快得多。 基于Apache Ignite微服务的服务网格可自动在集群中部署任意数量的分布式服务实例。

BigData加速器。

Hadoop以其经济地存储和分析大数据集的能力而被广泛使用,并且早已成为新兴技术。 但是,它的批处理调度开销和基于磁盘的数据存储使其不适合用于分析生产环境中的实时实时数据。 限制Hadoop和Map / Reduce性能扩展的主要因素之一是Hadoop依赖于生成大量输入/输出(I / O)文件的文件系统。 一种替代方法是将所需的分布式数据存储在内存中。 将Map / Reduce内存放入所需的数据中可消除文件I / O延迟。


Apache Ignite提供了一组有用的组件,允许在内存中执行Hadoop作业和文件系统操作。 Apache Ignite Hadoop加速器可以自动部署所有必需的可执行程序和库,以在JVM之间执行MapReduce,从而将启动时间缩短至毫秒。 通过避免访问辅助存储的延迟,可以加快分析速度。 而且,由于执行引擎与内存中的数据网格集成在一起,因此可以将数据网格中托管的键/值对有效地读入执行引擎,以最大程度地减少访问时间。

缓存即服务。

加载时间太长的数据驱动应用程序无聊而令人沮丧。 如果页面在加载时停滞,则五分之四的在线用户将单击。 内存数据网格可以在整个组织中提供一个公共的缓存层,该缓存层可以允许多个应用程序访问托管的内存缓存。


您可以通过将缓存层与应用程序分离来将缓存层与应用程序隔离。 组织中的任何应用程序(Java,.Net,C ++)都可以存储和读取缓存中的数据。 通过使用内存数据网格作为服务,不必为每个应用程序构建和部署本地缓存基础结构。 应用程序可以将Apache Ignite用作备用缓存,也可以回写其数据库,也可以将数据库中的数据加载到缓存中。 它消除了数百个或更多独立缓存基础结构的管理复杂性。

这些是内存网格(如Apache Ignite)已成为转换企业使用其数据进行业务的方式的基本体系结构组件的一些方式。 但这不是所有人! 本书将更深入地介绍许多内存数据网格用例和应用程序体系结构。

翻译自: https://www.javacodegeeks.com/2017/03/modern-application-design-memory-data-fabrics.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值