在P2P架构中使用超时

发布于 2024-10-30 22:51:43 字数 166 浏览 6 评论 0原文

我正在使用 Java 编写一个 P2P 应用程序。更具体地说,我使用 RMI 来实现类似令牌环的节点间通信系统 为了实现容错系统,我需要检测节点的崩溃。环中的每个节点都必须等待令牌 X 秒。此后,节点必须醒来并执行某些操作(例如,它可以拉取令牌)。我可以使用哪种方法来实现每个节点的超时?

提前致谢!!

I'm writing a P2P application using Java. More specifically I'm using RMI for realizing a token ring like inter-node communication system
For realizing a fault tolerant system I need to detect nodes' crashes. Each node in the ring have to wait for the token for X seconds. After this time the node must wake up and perform some action (for example, it can pull the token). Which method could I use for realizing timeouts in each node?

Thanks in advance!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱,才寂寞 2024-11-06 22:51:43

这是P2P系统中的一个经典问题。简短的答案是:如果您在选定的延迟后没有从远程对等点获得答案,则必须假设它无法访问(并承担出错的风险)。

这并不一定意味着远程对等点已离线或崩溃,它可能只是意味着有人在海洋深处切断了电缆,并且没有其他方法可以穿越海洋,或者任何替代通道已超载并且无法满足您的需求带宽/连接请求。

根本问题是,当您发现远程对等点出现问题时(例如,是否有人剪断电缆或对等点是否真的崩溃了?),无论您多么努力,您都无法确定连接发生了什么情况。

This is a classical issue in P2P systems. The short answer is: if you don't get an answer from a remote peer after some chosen delay, you MUST assume that it is unreachable (and take the risk of being wrong).

This does not necessarily mean that the remote peer is offline or crashed, it could simply mean that someone cut a cable deep in the ocean and that there is no alternative way to cross the ocean, or that any alternative channels are overloaded and cannot satisfy your bandwidth/connection request.

The bottom issue is that you can't find out for sure what happened to the connection when you notice some trouble with a remote peer (i.e., did someone cut a cable or did the peer actually crash?), no matter how hard you try.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文