Ignite 技术架构分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ignite 技术架构分析

1. ignite集群

1.1.Ignite分析

Ignite没有master节点或者server节点,也没有worker节点或者client 节点,按照Ignite的观点所有节点都是平等的。但是开发者可以将节点配置成master,worker或者client以及data节点。

Ignite节点之间会自动感知,集群可扩展性强,不需要重启集群,简单地启动新加入的节点然后他们就会自动地加入集群。这是通过一个发现机制实现的,他使节点可以彼此发现对方,Ignite默认使用 TcpDiscoverySpi 通过TCP/IP 协议来作为节点发现的实现,也可以配置成基于组播的或者基于静态IP的,这些方式适用于不同的场景。

1.2.集群部署方案

Ignite可以和应用无缝集成,可以充分利用Ignite的丰富功能。这个部署模式可扩展性最好,简单增加节点即可快速扩充整个系统的计算和负载能力,同时增加机器部署独立集群,同时又将Ignite嵌入应用内部以服务端模式运行,通过逻辑集群组进行资源的分配,整体上形成更大的集群。

2. ignite数据网格

2.1.介绍

Ignite数据网格是一个基于内存的分布式键值存储,他可以视为一个分布式的分区化哈希,每个集群节点都持有所有数据的一部分,这意味着随着集群节点的增加,就可以缓存更多的数据。

与其他键值存储系统不同,Ignite通过可插拔的哈希算法来决定数据的位置,每个客户端都可以通过一个加入一个哈希函数决定一个键属于哪个节点,而不需要任何特定的映射服务器或者name节点。

2.2.Ignite和Redis比较

Ignite和Redis都提供了分布式缓存的功能,但是每个产品提供的功能特性是非常不同的。Redis主要是一个数据结构存储,但是Ignite提供了很多内存内的分布式组件,包括数据网格、计算网格、流计算,当然也包括数据结构,所

3. Ignite服务网格

3.1.介绍

服务网络可将用户自定义的服务(如规则引擎服务)分布式部署到集群中指定的节点,类似于dubbo提供的分布式服务。

3.2.Ignite与dubbo比较

Ignite与dubbo同样都能提供分布式服务,不同之处在于:

1)部署方式

ignite对于服务的部署更灵活与自动化,体现在:

∙在集群中自动地部署任意数量的分布式服务实例

∙自动地部署单例,包括集群单例、节点单例或者关系键单例

∙通过在配置中指定在节点启动时自动部署分布式服务

∙取消任何已部署的服务

∙在集群中获得有关服务部署拓扑结构的信息

∙对于访问远程部署的分布式服务创建服务代理

相比之下,虽然dubbo的服务部署做不到ignite来得灵活自如,但反而显示简洁明了;比如dubbo无法在同一节点中部署数量任意的服务,但若是为了更好的利用服务器资源,在同一服务器中服务部署多个dubbo节点即可,这样的效果就是分工明确,保证一个节点只处理一个请求。

2)集群方式

Dubbo是通过注册中心机制做到将各个节点集群,而ignite主要通过基于组播与指定静态IP的自动发现机制实现的多个节点集群,同时ignite也支持以zookeeper注册中心方式集群。

在性能方面,两者是基于软负载均衡算法分发客户端请求,因此两者都能满足数量级的数据处理。

4. Ignite示例

4.1.Ignite安装

●从https:///下载Apache Ignite的zip压缩包

●将zip压缩包解压到系统安装文件夹

●运行文件夹中bin/ignite.bat即可启动ignite

4.2.运行示例工程

1)缓存示例工程

●将附件tansunignite.zip解压导入到eclipse中

●运行类com.tansun.ignite.cache.IgniteCache.IgniteProducer 插入用

户列表

●运行类com.tansun.ignite.cache.IgniteCache.IgniteConsumer 取出上

一步插入到缓存中的用户对象

2)服务示例工程

●将附件ignite-server.zip解压导入到eclipse中

●运行类cn.test.server.BusinessServer1启动服务节点1

●运行类cn.test.server.BusinessServer2启动服务节点2

●运行类cn.test.client.BusinessClient启动客户端节点调用远程服务

相关文档
最新文档