在Java中单个节点上模拟多个节点?

时间:2015-03-21 07:02:00

标签: java linux

我评估在单台计算机上设置和模拟虚拟集群的多个节点的方法,以便在Java中进行集群模拟。

我可能能够分配虚拟主机/ ips并生成多个JVM子进程,但是测试集群行为以设置和测试这种行为的最佳方法是什么。

这样做的每个想法都是适当的。

我是否可以将相同的端口用于所有映射到单个localhost的不同本地IP别名?

[更新]

给你一个想法:

笔记本电脑双核,8GB,120GB SSD。

虚拟IP:127.0.0.2,... 127.0.0.11 现在我希望能够启动java子进程,如: java -jar node.jar + args = 127.0.0.2,表示仅使用127.0.0.2 IP的节点。

后退将是使用不同的基本端口进行通信,但这将引入一个额外的层,它会感觉像测试在同一节点上运行的独立节点服务,因为它不会包含通常的群集检测和形成。

2 个答案:

答案 0 :(得分:0)

如果模拟环境是您的选择,那么尝试cloudsim如何...快速查看示例2,其余的您可以找到您要查找的内容,并将其java作为您需要导入的内容你的代码。

答案 1 :(得分:0)

事实证明,jGroups拥有我需要的所有内容。只需创建多个具有相同名称的通道并使用逻辑标识(地址),并使用其他方法识别实际节点而不是IP。

我开始并模拟了大约1000个节点,每个节点连接三个或四个通道。加入频道大约需要10毫秒。我甚至设法使用我的四个内核来并行化它。因此,开始测试需要两到三秒钟。通过形成一个替代通道并立即从主通道断开连接,我甚至可以检查大脑分裂行为。