(一) apache ignite-简介

ignite是什么?

apache ignite为开发人员提供了实时处理大数据和内存计算的方便易用的解决方案。主要有以下几点功能:

  1. Data grid 数据网格
  2. Compute grid 计算网格
  3. Service grid 服务网格
  4. Bigdata accelerator 大数据加数器
  5. Streaming grid 数据流网格

apache ignite核心技术特点如下:

  1. 开源
  2. 纯Java编写
  3. 基于Spring框架
  4. 支持.Net、C++和PHP语言

提供的主要功能如下所示:

  1. Elasticity 弹性:集群可以通过添加节点进行水平扩展;
  2. Persistence 持久性:数据网格可以将缓存中的数据持久化到关系型数据库中,甚至是NoSQL数据库中,例如MongoDB或Cassandra;
  3. Cache as a Service(CaaS) 缓存即服务:允许跨组织、多应用去访问管理内存缓存而不是慢速的基于磁盘读写的数据库;
  4. 2nd Level Cache 二级缓存:可以作为Hibernate和MyBatis持久化框架的二级缓存层使用;
  5. 高性能hadoop加速器:apache ignite可以替代hadoop task tracker、job tracker和HDFS,从而提高大数据分析的性能;
  6. 在Spark应用中共享内存:ignite RDD允许在不同的Spark作业和应用之间轻松的共享状态;
  7. 分布式计算:apache ignite提供了一组简单的API,允许用户在多个节点上获得高性能的分布计算和处理数据的能力。ignite的分布式服务对于开发和执行微服务架构也会提供很多帮助。
  8. 流:apache ignite允许可伸缩和容错内存中处理连续不断的数据流,而不是在数据存储在数据库后分析数据。

apache ignite应用架构

让我们快速浏览以下传统的应用结构,如下图所示:


屏幕快照 2018-05-27 下午11.41.01.png

传统的应用程序体系结构选择同步读写操作的数据存储。对于要求数据一致性和持久性可以起到很好的作用,但是如果有大量事务在队列中等待,就很容易出现性能瓶颈。

  • 大容量的事务处理
    在应用环境中添加一层内存数据网格,它使服务器的RAM来存储应用程序所需的大部分数据。

    数据网格位于应用服务和数据存储之间。内存数据网格在活动的内存中缓存由客户端频繁访问的数据,并且可以在必要时访问持久化存储,甚至可以对持久化存储进行异步发送或接收更新数据的操作。如下图所示:
    屏幕快照 2018-05-27 下午11.59.03.png

    通过使用内存网格,使数据更接近应用程序端。这样可以减少了响应时间,并且可以将事务时间从几秒降低到几分之一秒。
    通过这种方式,应用程序可以支持大量涉及tb级操作数据的并发事务,从而为客户提供更快、更可靠的事务体验。与传统的RDBMS相比,它是一个更现代的可伸缩数据管理系统,随着需求的增加,它能够弹性伸缩。
  • 弹性网络加速
    使用像apache ignite这样的内存数据网格,可以对web应用程序提供容错性,并加速web应用程序的性能。在不改变任何代码的情况下,可以通过缓存共享web应用程序之间的会话状态。如图所示:


    屏幕快照 2018-05-28 上午12.09.15.png

    上述方法提供了系统的高可用性,并提升了用户体验。如果使用apache ignite的方案,可以使web会话集群和用户web会话的复制机制的性能非常高。

  • 事件处理和实时分析
    数据可以告诉我们现在的业务背景是什么。随着IoT最为持续的数据源,使用热数据hot data比以往任何时候都要多。
    传统的数据管理系统无法快速处理数据,从而在发生重大事件时及时通知业务,例如:在线信用卡欺诈检测或风险计算。apache ignite允许在可伸缩和容错的内存中处理连续不断的数据流,而不是数据到达数据库后再分析。


    屏幕快照 2018-05-28 上午12.20.50.png

    这不仅可以使你能够关联关系并从大量的数据中检测出有意义的模式,而且还可以更快、更高效的进行处理。
    apache ignite数据网格可以管理大量传入的数据,并在服务器发生变更时向业务应用程序推送通知。ignite的持续查询功能,允许系统快速的访问大量的传入数据,并采取行动。

  • 分布式微服务
    微服务体系结构有很多优点,并且具有一定程度的模块化,这对于单模块代码库来说是非常难以实现的。Apache Ignite的内存数据网格可以为同一分布式集群中的相应微服务提供独立的缓存节点,对比传统方法具有一些优势。


    image.png

    它允许您最大限度地利用数据结构/网格资源。在内存中集群上运行的服务比基于磁盘的应用程序服务器要快得多。Apache Ignite基于微服务的服务网格提供了一个平台来自动部署集群中的任何数量的分布式服务实例。

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


    image.png

    Apache Ignite提供了一组有用的组件,允许内存中的Hadoop作业执行和文件系统操作。Apache Ignite Hadoop accelerator可以自动部署所有必需的可执行程序和库,以便在jvm上执行Map/Reduce,这大大减少了启动时间,缩短到毫秒。这可以通过避免访问辅助存储的延迟来加快速度。此外,由于执行引擎与内存中的数据网格集成,因此可以有效地将驻留在数据网格中的键/值对读入执行引擎,以最小化访问时间。

  • 缓存即服务
    数据驱动的应用程序加载时间太长,使用起来既枯燥又令人沮丧。五分之四的在线用户会在加载页面时点击离开。内存中的数据网格可以提供跨组织的公共缓存层,这可以允许多个应用程序访问管理的内存缓存。


    image.png

你可能感兴趣的:((一) apache ignite-简介)