假设你已经看过
分布式计算上手demo指南,对fourinone基本的分布式并行计算方式有了初步了解。
本demo演示了工头和几个工人之间互相sayhello的简单例子,从而了解到集群计算节点之间互相交互,以及工头批量处理和工人互相传递数据(多用于合并)的功能。
HelloCtor:是一个工头实现,它实现giveTask接口,它首先通过getWaitingWorkers获取到一个线上工人的集合,然后通过doTaskBatch进行批量任务处理,这里工头向每个工人说句“hello”打招呼。doTaskBatch有两个参数,分别是工人集合和任务,该方法会等到每个工人都执行完该任务才返回,因此使用doTaskBatch不需要轮循检查每一个调用结果,它是一个批量处理。为了节省资源利用,工头运行结束后不会退出jvm,可以使用exit方法强行退出。
HelloWorker:是一个工人实现,这里它实现了doTask和receive接口,分别用于被工头和其他工人调用。doTask实现了被工头调用执行任务的内容,这里该工人向工头和其他工人“say hello”招呼,并告诉自己的名字。它通过getWorkerElse获取到集群中除自己以外的其他工人,getWorkerElse可以传入一个参数指定工人类型,然后依次调用其他工人的receive方法传递信息。receive实现了该工人被其他工人调用的处理内容,参数WareHouse由其他工人传入,它返回一个boolean值,可以代表接收和处理是否成功。这里简单的将其他工人的问候输出。
运行步骤:
1、启动ParkServerDemo(它的IP端口已经在配置文件的PARK部分的SERVERS指定)
2、运行一到多个HelloWorker(传入3个参数,依次是该工人的名字、ip或者域名、端口)
3、运行HelloCtor
注意:doTaskBatch会等集群中最慢的一个工人完成任务才统一返回,如果希望能让机器运行快的机器在完成后能马上又分配新的任务,而不用等待,实现能者多劳,可以不使用doTaskBatch,而采用逐个调用每个工人的doTask并轮循结果状态的方式实现,具体请参考
分布式计算完整demo
实际上,工头对工人的调用是通过doTask,工人对工人的调用是通过receive。doTask用于工头分配任务,receive多用于工人之间合并传递数据,每个工人都可以同时向其他工人传递数据,并接收来自其他工人的数据。集群中每个工人向其他工人传递数据都完成了,也就意味着每个工人都接收完成了。
附件是demo
邮箱:Fourinone@yeah.net
开发包及指南下载地址:
http://www.skycn.com/soft/68321.html
分享到:
相关推荐
uchome插件马甲sayhello,uchome插件马甲sayhello,
分布式实验报告CORBA.docx
nokia 5800(s60 5th)上可用的wgz程序,程序很简单是入门的sayhello程序,通过这可以学习如何开发Nokia s60第五版的web小程序
dwr3框架学习笔记–第一个dwr3程序sayhello 博文:http://blog.csdn.net/yuchen837295036/article/details/52682417
公务员考试行测备考:向数量关系“sayhello”.pdf
spring+cxf整合,lib自己添加,文体太大,上传不了。
webservice客户端源代码
这是一个基于Ai-Thinker IDE、ESP8266芯片的OLED驱动的参考程序。编程语言是C++,并且在程序中只简单地让OLED显示Hello,但包括两种取模后显示的方法。
个非常简单的留言板程序。 web程序开发流程: 1.分析需求,列出功能清单 2.设计程序功能,写程序规格书和技术规格书 3.开发调试 4.调试测试 ...使用到的python包有Bootstrap-Flask、Flask-Moment、Faker、Flask-...
这是一个基于keil编译器、STM32F103RCT6芯片的参考程序,编程语言是C++,OLED与单片机的通信方式是软件IIC。其功能知识简单地在OLED显示Hello,但它包含两种取模后的编程方法。
写一个iPhone应用程序,要求可以输入名字,点击按钮后,会显示一段文字向输入的名字打招呼,例如输入“宝玉”,显示“你好,宝玉!”这是一个很简单的应用程序,包含一个文本输入框,一个文本显示框,一个按钮。...
grpc_node_go_demo这是一个使用grpc让Node.js与Go互相调用RPC服务的Demo。下文是教程定义.proto新建文件 hello.proto 定义一个 HelloService ,并且有一个 SayHello 方法。syntax = "proto3";package demo;service ...
SAyHello v1.0 作者:github.com/thelinuxchoice/ [已删除] 维护者: 推特: 使用链接从目标捕获音频(.wav) 这个怎么运作? 用户授予麦克风权限后,您会选择释放一个网站重定向按钮来分散目标的注意力,同时将...
试验题目:无状态Session Bean组件的开发与应用。 试验目的:通过对简单无状态会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。 试验任务:根据EJB组件的结构体系和运行机理,编写实现显示...
ts-event-bus Typescript中的分布式消息... sayHello : slot < string> ( ) , getTime : slot < null> ( ) , multiply : slot < { a : number , b : number } , number > ( ) , ping : slot < void> ( ) , } ex
NULL 博文链接:https://justsee.iteye.com/blog/1592553
问好 Sayhello是Trello的克隆版本,Trello是用于跟踪任务的组织工具。 这个应用程式可让您建立新的木板,清单和卡片,以协助整理待办事项和专案。 此外,您可以与其他用户共享板,以进行查看或协作。 为了获得更好的...
<object name="SayHello" assembly="SayHello.dll" typeName="IocInCSharp.SayHello"> typeName="IocInCSharp.CnHelloGenerator"> 从中我们可以看出,我们实现了一个IocInCSharp.ConfigHandler类,用来...