【发布时间】:2015-02-07 03:17:45
【问题描述】:
我正在实现一个运行共识协议的分布式系统。我使用的算法对我的问题无关紧要。我关心的是系统中节点之间的通信。我需要一种方法来允许节点之间的异步消息传递。某些类型的消息应该在侦听节点中触发事件。例如
(node_1) sendMessageA() ---> (node_2, ..., node_n) recvMessageA()
(node_2, ..., node_n) sendMessageB() ---> (node_1) recvMessageB()
(node_1) sendMessageC() ---> (node_2, ..., node_n) recvMessageC()
...
基本上,我有一个可以从给定 node_i 调用的函数,这应该向系统中的其他节点发送消息并触发其他节点中的相应函数。这些消息在这个分布式系统中需要是异步的。
有哪些好的框架或工具可以帮助实现这种类型的交流?
我知道Netty 和ZeroMQ 似乎都与此类问题相关,但我都没有这方面的经验。 其中哪一个更适合此类问题?还有更好的替代方案吗?我更喜欢使用 java 的框架,但我也会考虑使用其他语言的技术。
【问题讨论】:
-
使用 RMI,您可以在纯 java 中的对等方之间进行通信。如果您坚持使用 java 并希望避免第二个框架的复杂性,我建议您使用它。
标签: java asynchronous netty zeromq distributed-system