假设你已经看过
分布式计算上手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
分享到:
相关推荐
1. **资源共享**:在需要多个用户或客户端共享一个中心资源(例如数据库)的情况下,使用分布式计算可以有效地管理这些资源。 2. **提高计算效率**:通过利用多个系统的组合计算能力,可以在较短的时间内解决复杂...
RMI(Remote Method Invocation)即远程方法调用,是Java平台提供的一个实现分布式计算的重要框架,自Java JDK 1.1版本起引入。RMI允许在不同的虚拟机(JVM)上运行的对象像本地对象一样互相调用彼此的方法,这为...
通过这个例子,我们可以看到CORBA如何让分布在网络不同位置的Java对象像本地对象一样互相调用方法,实现了真正的分布式计算。 总结,CORBA的关键概念包括: 1. 接口定义语言(IDL):用于定义跨语言、跨平台的对象...
CORBA(Common Object Request Broker Architecture,通用对象请求代理体系结构)是由OMG(Object Management Group,对象管理组织)在1991年提出的一种分布式计算软件体系结构。它的主要目的是为了简化跨网络平台...
Java RMI,全称为Remote Method Invocation,是Java平台上的一个标准API,用于实现分布式计算,使得在不同Java虚拟机(JVM)上的对象能够互相调用方法。这个"java rmi HelloWorld版(源码)"的压缩包文件提供了一个...
Web Service是一种基于开放标准(如WSDL、SOAP和UDDI)的分布式计算模型,使得不同系统之间的组件可以互相通信,不论它们运行在何种操作系统或编程语言上。在Java世界里,Axis2是Apache软件基金会的Web服务框架,...
CORBA(Common Object Request Broker Architecture,通用对象请求代理系统)是一种面向分布式计算环境的标准,它允许不同计算机上的软件组件通过网络互相通信。CORBA通过定义一套标准接口,使得开发人员可以创建跨...