我正在用Java构建一个用于学术项目的多节点(分布式)实验设置。我使用脚本在所有节点上启动应用程序。应用程序启动并获取所有模块后,这些节点会对分布在这些节点上的共享数据启动一些操作。目前,我已经在所有模块启动的瞬间与在单个节点启动第一个操作的瞬间之间设置了延迟。虽然这似乎有效,但我希望有一个屏障,使所有节点启动其模块并进入屏障。一旦所有节点都进入障碍,他们就可以对共享数据启动操作。
如果有人可以解释如何做或者至少指出我正确的文档,那将是一个很大的帮助。仅供参考,如果可能,我宁愿避免使用信号量。一开始我知道参与实验的节点数量,因此#nodes的这些信息可用于设置屏障。
感谢
萨钦
答案 0 :(得分:0)
看看Hazelcast。有一个CyclicBarrier implementation可用(我没有测试它)。您还可以使用CountDownLatch的分布式版本。