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