假设你已经看过
分布式计算上手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作为一款流行的开源社交网站系统,为用户提供了丰富的个性化功能。而"uchome插件马甲sayhello"则是针对UCHome系统开发的一款插件,旨在增强用户互动...
分布式实验报告-CORBA.docx概述了通过CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)进行系统编程的实验过程。...这对于理解分布式计算、网络编程以及中间件技术有重要作用。
1. **资源共享**:在需要多个用户或客户端共享一个中心资源(例如数据库)的情况下,使用分布式计算可以有效地管理这些资源。 2. **提高计算效率**:通过利用多个系统的组合计算能力,可以在较短的时间内解决复杂...
《Nokia 5800上的SayHello Wgz程序:S60第五版Web Run-Time开发初探》 在移动设备领域,Nokia 5800是一款深受用户喜爱的智能手机,搭载了S60第五版操作系统。在这个平台上,开发者可以利用Web Run-Time(WRT)技术...
我们将从"spring+cxf整合,sayHello"这个主题出发,了解整个整合过程以及涉及到的关键知识点。 首先,Spring框架是一个开源的应用框架,它提供了对IoC(Inversion of Control)和AOP(Aspect Oriented Programming...
总结来说,RMI是Java中实现分布式计算的一种手段,它允许在不同JVM上的对象之间透明地调用方法。通过定义远程接口、实现远程对象、启动服务器和编写客户端代码,可以构建起基本的RMI应用。在实际项目中,可以根据...
标题中的“SayHelloClient2.rar”表明这是一个包含Java Web服务客户端源代码的压缩文件,而“SayHello”可能是指这个Web服务的主要功能,即向用户发送问候。描述中提到的“webservice客户端源代码”进一步确认了这个...
【分布式学习文档,帮助你初步学习 Java的分布式编程】 分布式编程是现代软件开发中的一个重要领域,尤其是在大型企业级应用和互联网服务中。Java作为一种广泛使用的编程语言,提供了强大的分布式编程支持,其中...
在这个"ESP8266.OLED_SayHello.zip"项目中,重点是展示了如何使用C++语言在ESP8266上驱动OLED(有机发光二极管)显示器来显示简单的"Hello"文本。OLED显示器因其高对比度、低功耗和小巧尺寸而在嵌入式系统中颇受欢迎...
**RMI(Remote Method Invocation)远程方法调用**是Java平台提供的一种强大的工具,用于实现分布式计算。在Java中,RMI允许一个Java对象在一台机器上调用另一台机器上的对象的方法,使得开发者能够构建跨越多台...
dwr3框架学习笔记–第一个dwr3程序sayhello 博文:http://blog.csdn.net/yuchen837295036/article/details/52682417
Java Remote Method Invocation (RMI) 是Java平台中用于分布式计算的一种技术。它允许Java对象在不同的JVM(Java虚拟机)之间进行交互,仿佛它们在同一个进程中运行一样。RMI是构建分布式应用的重要工具,特别是在...
这个压缩包文件“STM32.OLED_SayHello.zip”包含了所有必要的资源和代码示例,为初学者提供了一个很好的起点。 首先,我们来看看STM32F103RCT6芯片。这是一款基于ARM Cortex-M3内核的微控制器,广泛应用于嵌入式...
SOAP(Simple Object Access Protocol)是一种基于XML的通信协议,最初由微软和Userland Software提出,现已成为开放标准,广泛应用于分布式计算的Web Services。 Axis是SOAP协议的一个实现,它不仅仅是一个SOAP...
公务员考试行测备考:向数量关系“sayhello”.pdf
在 IHello.java 中定义远程服务器接口,包括一个 sayHello() 方法,该方法将抛出 RemoteException。 2. 实现远程服务器接口 在 HelloTaskImpl.java 中实现远程服务器接口,并将服务注册到 RMI 注册表中。 3. 编译...
RMI(Remote Method Invocation)即远程方法调用,是Java平台提供的一个实现分布式计算的重要框架,自Java JDK 1.1版本起引入。RMI允许在不同的虚拟机(JVM)上运行的对象像本地对象一样互相调用彼此的方法,这为...
在IT行业中,分布式服务通信是常见的需求,而Dubbo作为一款高...总的来说,通过Dubbo实现两个项目之间的互相通信,不仅简化了分布式系统中的服务调用,还提供了丰富的服务治理功能,是现代微服务架构中的重要组成部分。