博客专栏 -凯发k8国际

基于fourinone实现分布式计算

fourinone提供了一个4合1分布式框架和简单易用的编程api,实现对多台计算机cpu,内存,硬盘的统一利用,从而获取到强大计算能力去解决复杂问题。包括并行计算、分布式缓存、分布式文件操作、分布式协同和锁以及简化mq功能等

分享到:

最近更新文章

使用fourinone可以完成大部分分布式并行计算需求, 但是计算过程中的故障和容灾处理是怎么进行的呢, 这里详细分析一下: 总的来说,fourinone框架不会在设计中抛弃错误不处理或者容忍错误导致框架崩溃,框架通常会捕获所有的错误反馈给开发者去处理,但是框架本身不自作主张,替开发者考虑处理方案,只有这样框架才能从特定场景中抽象出来,给开发者更灵活的发挥和去满足各种更复杂业务容错情况。 那么框 ...
有2319人浏览 2013-03-04 13:29
分布式协同是分布式应用中不可缺少的,通常担任协调者的角色,或者说是将多机协同的职责从分布式应用中独立出来,以减少系统的耦合性和增强扩充性。apache的zookeeper, google的chubby都是分布式协同的实现者。fourinone实际上可以单独当做zookeeper用,它使用最少的代码实现了zookeeper的所有功能,并且力图做到功能更强但是使用更简洁。 一、实现原理 fourino ...
有3959人浏览 2012-11-06 16:26
在分布式计算上手demo,分布式计算sayhello,分布式计算完整demo中, 对于工人(worker)、工头(ctor),parkserver在多台计算机上的部署和配置: 每台计算机放� ...
有3322人浏览 2012-07-19 18:21
假设你已经看过分布式计算上手demo指南,对fourinone基本的分布式并行计算方式有了初步了解。 本demo演示了工头和几个工人之间互相sayhello的简单例子,从而了解到集群计算节点之间互相交互,以及工头批量处理和工人互相传递数据(多用于合并)的功能。 helloctor:是一个工头实现,它实现givetask接口,它首先通过getwaitingworkers获取到一个线上工人的集合,然 ...
有2541人浏览 2012-06-28 10:55
对于一个分布式计算的应用,如果不需要自动部署,将工头工人程序文件分别部署到相应机器运行即可,不需要过多配置。 fourinone2.0可以支持自动化class和jar包部署,class和jar包只需放在工头机器上, 各工人机器会自动获取并执行,兼容操作系统,不需要进行安全密钥复杂配置. 假设有一个分布式计算job,包括三个程序文件: jobctor:包工头实现 jobworker:农民工实现 j ...
有2724人浏览 2012-06-26 17:43
fourinone2.0里通过fttpadapter和fileadapter实现文件io的支持。其中,fttpadapter提供对远程文件的操作,fileadapter提供对本地文件的操作,两者api和使用相似,这� ...
有2639人浏览 2012-05-30 14:17
filebatch类提供了一系列对批量并行读写操作支持(包括对fttpadapter和fileadapter),它跟并行读写的区别是不需要检查结果,会等到所有并行读写任务全部� ...
有1881人浏览 2012-05-30 13:51
fttpadapter是通过fttpreadadapter的tryreadall方法进行并行读fttpadapter fa = new fttpadapter("fttp://10.232.20.151/home/log/1.log");result rs = fa.getfttpreader().tryre ...
有2096人浏览 2012-05-30 13:37
假设通过fttpadapter已经读取到远程文件中一部分数据,如下:fttpadapter fa = new fttpadapter("fttp://10.232.20.151/home/log/1.log");fttpreadadapter reader = fa.getfttpreader();byte[] bts = reader.readall(); 上面得到一个byt ...
有1504人浏览 2012-05-30 11:55
fttpadapter是通过fttpreadadapter来直接读取远程文件内容 fttpadapter fa = new fttpadapter("fttp://10.232.20.151/home/log/1.log");fttpreadadapter reader = fa.getfttpreader();byte[] bts = reader.readall(); 上 ...
有2099人浏览 2012-05-29 15:02
集群文件复制是经常面临的需求,比如备份容灾,文件迁移,同步数据等等 fttpadapter提供了简单高效的文件复制方法,支持远程文件的集群内复制fttpadapter fromfile = new fttpadapter("fttp://10.232.20.151/home/log/a.log");fttpadapter tofile = fromfile.copyto(&q ...
有2784人浏览 2012-05-29 14:56
fttpadapter fa = new fttpadapter("fttp://10.232.20.151/home/qianfeng.py/fttp/tmp/1.log");上面实例化一个fttpadapter类,并输入一个fttp路径,可以是一个目录路径,也可以是个文件路径 fttpadapter类提供了一系列访问远程文件的方法:createdirectory和creat ...
有2370人浏览 2012-05-29 14:49
启动成功fttpserver后,可以使用fttpadapter的api进行相关操作: fttpadapter.fttproots()是一个静态方法,可以得到集群文件系统根目录,它返回一个string数组,通常是ip字符对应每台计算机。 listroots()方法可以得到每台计算机上的硬盘目录,比如: fttpadapter fa = new fttpadapter("fttp://&q ...
有2007人浏览 2012-05-29 14:43
fttpadapter的使用很简单,在每台计算机上启动一个fttpserver即可,另外需要启动一个parkserver负责协同。parkserver也可以和其中一个fttpserver放在相同计算机上 1、启动parkserverdemo(它的ip端口已经在配置文件的park部分的servers指定) 2、每台计算机启动fttpserver,需要指定该计算机的ip为输入参数 启动好后,然后打开 ...
有3620人浏览 2012-05-29 14:40
fourinone也可以当成简单的mq来使用,该demo演示了队列和主题订阅两种模式的实现 一、队列 将domain视为mq队列,每个node为一个队列消息,检查domain的变化来获取队列消息。 sender:是一个队列发送者,他发送消息的实现是在queue上创建一个匿名节点来存放消息 pl.create(queue, (serializable)obj); receiver:是一个队列 ...
有2435人浏览 2011-12-07 11:36
利用fourinone可以轻松实现分布式缓存功能: 1、中小应用的缓存实现:直接启动一个parkserver,分别在两个java进程中使用parklocal的create和get方法即可实现缓存的读写操作。 2、如果是大型网站的缓存,单台parkserver的压力不能承受,需要建立多台cacheserver,并且使用cachefacade进行负载均衡,cachefacade会根据key自动寻找存 ...
有2388人浏览 2011-12-07 11:34
lockdemo是利用fourinone进行分布式锁的实现: 可以启动多个lockdemo实例,每个实例在fourinone上建立一个自己的node, node的domain为lock, node的值为node 然后再轮循判断domain lock的第一个元素是否是自己的node,如果是,就执行,这里模拟线程执行8秒,执行完将自己的node删除,代表释放锁;如果不是,就继续等待。 运行步骤: ...
有2158人浏览 2011-12-07 11:19
对于像淘宝这样上万台服务器集群环境的大型互联网应用, 通常我们面临这样一种需求: 我们需要一个集群管理者管理集群里的服务器,同一个集群中任� ...
有1767人浏览 2011-09-21 14:11
在分布式多台机器环境下,维持统一的配置信息是最常见的需求, 当配置信息改变时,所有的机器能实时获取并更新。 fourinone通过park进行配置信息管理,pa ...
有1998人浏览 2011-09-21 14:08
我们现实中的分布式计算存在多个环节,比如有的任务拆分,有的计算结果合并,或者是多个拆分和合并,他们之间是串行关系,也就是合并必须等待拆分和计算完成才能进行,同时每个拆分或者合并的任务又都是并行的过程。 ctordemo:是包含了3个工头实例,对应3个环节,链式处理,实现过程获取到线上工人节点,进行调用,所有的分配任务和中间结果存储都由自己实现处理。 这里简单的将20条数据分配给多个工人处理, ...
有3854人浏览 2011-09-14 11:38
  • 专栏创建者:
  • 创建时间:2011-12-07 13:18:19
  • 专栏文章数:21篇
  • 专栏被浏览:56693 次

本专栏热门文章

最新评论

同问2楼问题,一直没有输出result,除非加sleep
tx6731 评论了
...
妞给爷小个 评论了
试验过,不错。 我在寻找带容错的fourinone,呵呵。据说楼主后期有推出更多特性,期待中。 楼 ...
itjan 评论了
lykm02 写道fourinone 写道除了脚本方式启动外,新的3.0版本支持程序化启动和管理进程我 ...
fourinone 评论了
fourinone 写道除了脚本方式启动外,新的3.0版本支持程序化启动和管理进程我的问题是,如果没有 ...
lykm02 评论了
kkmike999 写道simplector的givetask,每次if (result.getsta ...
fourinone 评论了
jadethao 写道‘职介者‘是什么个作用?能稍微给点解释吗?谢谢!职介者,应该就是parkserv ...
kkmike999 评论了
simplector的givetask,每次if (result.getstatus() == war ...
kkmike999 评论了
除了脚本方式启动外,新的3.0版本支持程序化启动和管理进程
fourinone 评论了
这个地方脚本部署不需要ssh?不然分布式计算节点如何用脚本启动?
lykm02 评论了
global site tag (gtag.js) - google analytics
网站地图