我需要用Java模拟一个系统,其中有一个master和多个worker。每个worker可以在本地处理其数据,但需要与master通信以从其他节点读取数据。并且 worker 应该同时工作。
我怎样才能模拟这个系统?我是否需要为每个正在运行的工作线程和主线程启动一个新线程?还有别的办法吗?
最佳答案
如果您想在一台机器上执行此操作,那么我看到两个选项:
- 创建一个主应用程序和一个辅助应用程序(确保您可以运行这些应用程序的多个实例)。运行一个主应用程序和多个工作应用程序实例。
- 创建一个应用程序,其中有一个
Master
类实例和多个Worker
类实例。让Master
在单独的线程中运行,并让每个Worker
在自己的线程中运行。
因此,第一个选项是将每个“节点”(主节点或工作节点)作为单独的进程运行,而第二个选项是将每个“节点”作为单独的线程运行。
关于java - Java分布式Master-Worker架构仿真设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421405/