标签:提交 server cli 之间 实时 路由 索引类型 nal ons
上一篇文章,我们做了内存数据库的技术选型:
本文中,我们继续深入研究Apache Ignite,同时分享一些我们.Net的编码实践。
首先,Apache Ignite是一个内存数据组织是高性能的、集成化的以及分布式的内存平台,他可以实时地在大数据集中执行事务和计算,和传统的基于磁盘或者闪存的技术相比,性能有数量级的提升。
其中:
Data Grid:Ignite内存数据网格是一个内存内的键值存储,他可以在分布式集群的内存内缓存数据。
它通过强语义的数据位置和关系数据路由,来降低冗余数据的噪声,使其可以节点数的线性增长,直至几百个节点。
Ignite数据网格速度足够快,经过官方不断的测试,目前,他是分布式集群中支持事务性或原子性数据的最快的实现之一。
SQL Grid:内存SQL网格为Apache Ignite提供了分布式内存数据库的功能,它水平可扩展,容错并且兼容SQL的ANSI-99标准。 SQL网格支持完整的DML命令,包括SELECT, UPDATE, INSERT, MERGE以及DELETE。 同时支持分布式SQL Join关联
RDBMS集成: Ignite支持与各种持久化存储的集成,它可以连接数据库,导入模式,配置索引类型,以及自动生成所有必要的XML OR映射配置和Java领域模型POJO,这些都可以轻易地下载和复制进自己的工程。
Ignite可以与任何支持JDBC驱动的关系数据库集成,包括Oracle、PostgreSQL、MS SQL Server和MySQL
Apache Ignite 的功能特性有:
Apache Ignite具有非常先进的集群能力,部署非常灵活。
上面大致介绍了Apache Ignite的架构和功能特性,现在我们以代码示例的方式,分享一下做的技术原型验证:
1. 启动Apache Ignite
代码中通过调用Ignition.Start()启动一个Ignite节点。
直接执行apache.Ignite.exe也可以启动一个Ignite节点,其内部引用了Apache.Ignite.Core.dll,调用了Ignition.Start()方法
2. 创建指定的缓存区域
3. 数据写入缓存
4.数据查询
5. 数据关联查询
6.查询指定的字段
7.全文搜索
8. Apache Ignite集群部署
节点平等
Ignite没有master节点或者server节点,也没有worker节点或者client节点,按照Ignite的观点所有节点都是平等的。但是开发者可以将节点配置成master,worker或者client以及data节点。
自动发现机制
Ignite节点之间会自动感知,集群可扩展性强,不需要重启集群,简单地启动新加入的节点然后他们就会自动地加入集群。这是通过一个发现机制实现的,他使节点可以彼此发现对方,Ignite默认使用TcpDiscoverySpi通过TCP/IP协议来作为节点发现的实现,也可以配置成基于多播的或者基于静态IP的,这些方式适用于不同的场景。
部署模式
Ignite可以独立运行,也可以在集群内运行,也可以将几个jar包嵌入应用内部以嵌入式的模式运行,也可以运行在Docker容器以及Mesos和Yarn等环境中,可以在物理机中运行,也可以在虚拟机中运行,这个广泛的适应性是他的一个很大的优势。
配置方式
Ignite的大部分配置选项,都同时支持通过基于Spring的XML配置方式以及通过Java代码的编程方式进行配置,这个也是个重要的优点。
9. 客户端和服务端
Ignite中各个节点是平等的,但是可以根据需要将节点配置成客户端或者服务端,服务端节点参与缓存,计算,流式处理等等,而原生的客户端节点提供了远程连接服务端的能力。Ignite原生客户端可以使用完整的Ignite API,包括近缓存,事务,计算,流,服务等等。
代码以Client模式启动Ignite
Client/Server架构,带来了很大的问题!!
10. Apache Ignite REST API
Apache Ignite 提供了Restful API,支持对缓存的读、写、执行任务、获取各类指标等。
启用HTTP连接:将libs\optional\ignite-rest-http 拷贝到libs\ignite-rest-http即可。
http://localhost:8080/ignite?cmd=version
Get or create cache
http://localhost:8080/ignite?cmd=getorcreate&cacheName=partionedCache
Add
http://localhost:8080/ignite?cmd=add&key=newKey&val=newValue&cacheName=partionedCache
Get
http://localhost:8080/ignite?cmd=get&key=newKey&cacheName=partionedCache
SQL Query
http://localhost:8080/ignite?cmd=qryexe&type=Person&pageSize=10&cacheName=Person&arg1=1000&arg2=2000qry=salary+%3E+%3F+and+salary+%3C%3D+%3F
以上就是整个Apache Ignite的技术分享。
周国庆
2017/8/26
标签:提交 server cli 之间 实时 路由 索引类型 nal ons
原文地址:http://www.cnblogs.com/tianqing/p/7436525.html