Apache Ignite 特性,apacheignite特性
Apache Ignite 特性,apacheignite特性
1. Apache Ignite 的核心技术
- 开源
- 仅用Java写出
- 支持Java7,Java8(Java9目前测试不支持)
- 基于Spring
- 支持 .Net, C++ 和 PHP
2. Apache Ignite主要能力
- 集群性:Ignite的集群可以通过增加新的节点来横向扩展
- 持久性:Ignite数据网格可以作为RDBMS、NoSQL(MongoDB,Cassandra)的缓存入口
- 缓存作为服务(CaaS)
- 二级缓存:Ignite可以作为Hibernate和MyBatis的缓存层
- 分布式计算:Ignite提供了一些简单的API可以让用户在一个集群中的多个节点内进行分布式计算和数据处理。它的分布式服务非常适用于开发微服务类似的架构。
- 等等等
3.术语对比
Oracle Terminology | Apache Ignite |
---|---|
Database Instance | Apache Ignite server |
Table | Cache |
RowID | Key |
Row | Kew-value |
4. 集群拓扑结构
Ignite 中的节点都是等价的,并没有特殊的节点。但是 Ignite 提供了两种可供选择的节点类型:Server nodes、Client nodes
1. Server node
一个 Server node 可以存储数据,参与缓存,计算,流处理,也能参与部分 Map-Reduce 内存任务。
默认配置下,所有的节点都以Server node启动。
2. Client node
一个Client node 拥有远程连接 Server nodes 的能力,并可以在 Cache 里存取数据。它也可以存储部分数据(near cache)——即一个小缓存,能存储近期最常用的数据。
Client node 必须手动的配置启动。
默认情况下,Server node总是会存储数据并参与计算任务,Client node则可以操控Server caches,存储本地数据,参与计算任务。
它们两者都在在一个网格内。在某些特殊情况(如数据节点中存在大量 ACID 事务),可以人为建立集群,把server nodes 和 client nodes分隔开,让server node只存储数据,client node只进行计算,这种方式可以在一个网格拓扑结构中把数据节点和计算节点分开。这种方式的缺陷是:所有的client nodes总是会从其他node中请求数据,这样会增加网络延迟。
3. Ignite 节点启动
- Embeded with the application:Ignite节点与应用程序运行在同一个JVM上
- Server in separate JVM(真实集群拓扑结构):各个server node 会分别运行在自己的JVM上。这也是最常用节点启用方式。
- Client and Server in separate JVM on single host: 在一个主机上,分别在不同的JVM上运行Client 和 Server nodes。这种情况适用于数据节点里存在大量事务时,也即是上一节最后讨论的内容。
评论暂时关闭