Apache Ignite——集合分布式缓存、计算、存储的分布式框架
Apache Ignite内存数据组织平台是一个高性能、集成化、混合式的企业级分布式架构解决方案,核心价值在于可以帮助我们实现分布式架构透明化,开发人员根本不知道分布式技术的存在,可以使分布式缓存、计算、存储等一系列功能嵌入应用内部,和应用的生命周期一致,大幅降低了分布式应用开发、调试、测试、部署的难度和复杂度。
4.2.Ignite服务网格
Ignite
服务网格以一种优雅的方式实现了分布式RPC,定义一个服务非常简单:
下面通过一个简单的示例演示下Ignite
服务的定义、实现、部署和调用:
4.2.1.服务定义
public interface MyCounterService {int get() throws CacheException; }
4.2.2.服务实现
public class MyCounterServiceImpl implements Service, MyCounterService {@Override public int get() {return 0;} }
4.2.3.服务部署
ClusterGroup cacheGrp = ignite.cluster().forCache("myCounterService"); IgniteServices svcs = ignite.services(cacheGrp); svcs.deployNodeSingleton("myCounterService", new MyCounterServiceImpl());
4.2.4.服务调用
MyCounterService cntrSvc = ignite.services().serviceProxy("myCounterService", MyCounterService.class, /*not-sticky*/false); System.out.println("value : " + cntrSvc.get());
是不是很简单?
关于服务网格的详细描述,请看这里。
4.3.Ignite计算网格
Ignite的分布式计算是通过IgniteCompute
接口提供的,它提供了在集群节点或者一个集群组中运行很多种类型计算的方法,这些方法可以以一个分布式的形式执行任务或者闭包。
本方案中采用的是ComputeTask
方式,它是Ignite
对于简化内存内MapReduce
的抽象。ComputeTask
定义了要在集群内执行的作业以及这些作业到节点的映射,还定义了如何处理作业的返回值(Reduce)。所有的IgniteCompute.execute(...)
方法都会在集群上执行给定的任务,应用只需要实现ComputeTask
接口的map(...)
和reduce(...)
方法即可,这几个方法的详细描述不在本文讨论的范围内。
下面是一个ComputeTask
的简单示例:
IgniteCompute compute = ignite.compute(); int cnt = compute.execute(CharacterCountTask.class, "Hello Grid Enabled World!"); System.out.println(">>> Total number of characters in the phrase is '" + cnt + "'."); private static class CharacterCountTask extends ComputeTaskSplitAdapter<String, Integer> {@Override public List<ClusterNode> split(int gridSize, String arg) {String[] words = arg.split(" ");List<ComputeJob> jobs = new ArrayList<>(words.length);for (final String word : arg.split(" ")) {jobs.add(new ComputeJobAdapter() {@Override public Object execute() {System.out.println(">>> Printing '" + word + "' on from compute job.");return word.length();}});}return jobs;}@Override public Integer reduce(List<ComputeJobResult> results) {int sum = 0;for (ComputeJobResult res : results)sum += res.<Integer>getData();return sum;} }
通过这样一个简单的类,就实现了梦寐以求的分布式计算!
关于计算网格的详细描述,请看这里。
参考:http://www.infoq.com/cn/articles/ignite-lucene-log4j2-log-query
转载于:https://www.cnblogs.com/bonelee/p/6794894.html
Apache Ignite——集合分布式缓存、计算、存储的分布式框架相关推荐
- redis分布式缓存php,基于redis分布式缓存实现
第一:Redis 是什么? Redis是基于内存.可持久化的日志型.Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景数据结构(Data Structure)需求越来越 ...
- mllib逻辑回归 spark_Spark架构详解——分布式流计算内存批处理迭代运算框架
#Spark# #大数据# #Hadoop# #streaming# #分布式计算# Spark:基于内存的高速集群计算框架.对mapreduce进行优化,在内存中进行迭代运算.可以使用Java,Py ...
- mybatis缓存二级缓存_MyBatis缓存与Apache Ignite的陷阱
mybatis缓存二级缓存 一周前,MyBatis和Apache ignite 宣布支持apache ignite作为MyBatis缓存(L2缓存). 从技术上讲,MyBatis支持两个级别的缓存: ...
- MyBatis缓存与Apache Ignite的陷阱
一周前,MyBatis和Apache ignite 宣布支持apache ignite作为MyBatis缓存(L2缓存). 从技术上讲,MyBatis支持两个级别的缓存: 本地缓存,默认情况下始终启用 ...
- apache ignite_使用Apache Ignite优化Spark作业性能(第1部分)
apache ignite 来看看他们是如何工作的! 本文的某些部分摘自我的书< Apache Ignite的高性能内存计算> . 如果您对这篇文章感兴趣,请查看本书的其余部分,以获取更多 ...
- 使用Apache Ignite优化Spark作业性能(第1部分)
快来看看他们是如何工作的! 本文的某些部分摘自我的书< Apache Ignite的高性能内存计算> . 如果您对这篇文章感兴趣,请查看本书的其余部分,以获取更多有用的信息. Apache ...
- apache ignite_使用Spring Data的Apache Ignite
apache ignite Spring Data提供了一种统一而简便的方法来访问不同类型的持久性存储,关系数据库系统和NoSQL数据存储. 它位于JPA之上,添加了另一层抽象并定义了基于标准的设计以 ...
- apache ignite_使用Apache Storm和Apache Ignite进行复杂事件处理(CEP)
apache ignite 在本文中, "使用Apache Ignite进行高性能内存计算"一书的作者将讨论使用Apache Strom和Apache Ignite进行复杂的事件处 ...
- Apache Ignite本机持久性,简要概述
通过将数据的工作集放入系统内存中,内存中方法可以达到极高的速度. 当所有数据都保存在内存中后,处理使用传统旋转磁盘引起的问题的需求就消失了. 例如,这意味着无需维护数据的其他缓存副本并管理它们之间的同 ...
最新文章
- 一个fork短码的扩展版本
- 十个最常用的JVM 配置参数
- 线性模型系数解读中的那些坑,以套索回归(LASSO)和岭回归(Ridege)为例
- MFC菜鸟学编程——第一篇
- MongoDB3.6.3 windows安装配置、启动
- 优化 | 利用SciPy求解非线性规划问题
- Oracle数据库中的SOUNDEX函数
- TCP中的Flag options
- android 函数式编程_Android开发人员的函数式编程-第1部分
- [Mojava 10.14.4] Clover隐藏多余分区, 原来可以这么简单
- linux服务器重启init 6和reboot区别
- 吴恩达机器学习 逻辑回归 作业3(手写数字分类) Python实现 代码详细解释
- 【java】二维数组的应用
- 使用GDB跟踪redis源代码执行get命令的过程
- iOS 面试题整理(带答案)二
- 权重衰减(weight decay)
- excel几个表合成一张_【一分钟Excel】如何快速合并多个工作表
- 新Word文档借用旧文档的部分样式
- 油管视频目录正则整理
- 112-RTKLIB中关于dcb文件读取的问题
热门文章
- linux 命令博客,Linux 命令
- python贪吃蛇_如何用Python写一个贪吃蛇?
- redis常用命令getex_Redis常用命令详细介绍(摘抄)
- python tablewidget综合实例_python – 仅通过单击行标题选择QTableWidget行
- python实现归一化去噪_二维FFT的归一化处理
- 计算机默认存储格式,office2007默认保存文件格式的修改方法
- c语言 switch案例,C语言程序设计 2. switch语句的运用 案例 switch条件语句.docx
- python3 装饰器_Python3 装饰器
- oauth最后的确认按钮_spring-oauth集成cas单点登录,登陆完成进入授权页面后,按回退按钮进入404页面的问题...
- Java程序员校招蚂蚁金服,mysql培训考试