首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于Java的分布式master-worker体系结构仿真设计

基于Java的分布式master-worker体系结构仿真设计
EN

Stack Overflow用户
提问于 2011-09-15 02:46:52
回答 2查看 1.1K关注 0票数 1

我需要在Java中模拟一个系统,其中有一个主机和多个工人。每个worker可以在本地处理其数据,但需要与主节点通信以从其他节点读取数据。工人应该同时工作。

我如何模拟这个系统?我是否需要为每个正在运行的工作线程和主线程启动一个新线程?还有别的办法吗?

EN

回答 2

Stack Overflow用户

发布于 2011-09-15 02:52:57

如果你想在一台机器上做这件事,那么我有两个选择:

  1. 创建一个主应用程序和一个辅助应用程序(确保您可以运行这些应用程序的多个实例)。运行一个主应用程序和多个worker application.
  2. Create实例,在这个应用程序中,您拥有Master类的单个实例和Worker类的多个实例。让Master在单独的线程中运行,让每个Worker也在自己的线程中运行。

因此,第一个选项是将每个“节点”(主进程或从属进程)作为单独的进程运行,而第二个选项是将每个“节点”作为单独的线程运行。

票数 2
EN

Stack Overflow用户

发布于 2011-09-15 02:59:20

这是一个非常普遍的问题,对许多架构解决方案都是开放的。我想介绍一下我过去用过的那个。我在这里使用RMI是为了便于远程调用。

所有主进程和从进程都是RMI服务。主服务器和从服务器都是使用RMI守护进程(RMID)生成的,该守护进程具有额外的功能,即在由于JVM崩溃或任何其他“异常”原因而关闭服务的情况下“升级”服务。RMI服务通常基于定义客户端和服务器之间的契约的接口工作。比方说,例如,我必须编写一个求解方程的服务。

我们从创建两个服务开始: master和slave。这两个服务都实现/向客户端公开相同的接口。唯一的区别是,“主”服务将单独负责跨不同从代理的工作“分支”,获取响应(或在需要时重新安排它们),并将其返回给客户端。主服务器是一个简单的RMI服务,它接受“等式”列表,并将它们拆分到不同的客户端。显然,这里的主服务器引用了它在RMI句柄方面管理的所有客户端(即,主服务器和从服务器之间的通信也是RMI调用)。

在这里,我们有很多配置主机如何“查找”从属的可能性,但我相信你可以很容易地解决这个问题。此体系结构具有基于网格的解决方案的优势,其中您不受单个进程的限制,可以为您完成所有工作,从而获得弹性并从JVM进程的整体堆大小中解脱出来。

我真的没有用过它们,但是如果你想用Java语言构建分布式系统,你应该研究一下RioJINI

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7421405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档