我有实现分布式节点系统(如p2p节点)的工作,每个节点(比如A,B,C和D)执行某些功能,需要相互交互以进行各种操作,例如同步操作和其他事情如15 A节点与一组5个B节点交互以进入最小负载节点的队列并获得令牌号,然后等待C将它们重定向到空闲节点D,依此类推。
我对如何进行设计感到有点迷失:
我想到的协议是封装一个操作类型的结构和其他要发送的东西。此外,这是使用确认方案完成的,所以我可以确定对方得到了消息。
我如何处理分布式互斥方面,因为我没有中央服务器。我猜每个节点都复制数据,但这听起来有点贵(更不用说愚蠢了)。
实施p2p系统时遵循的基本设计方法是什么,即如何实现程序,使其在接收时被阻止,但也可以发送进一步的更新等,同时从其他人那里获取信息关于整个系统的“状态”。
如何确保请求的总排序?
此外,我可能需要查看/面对的其他问题是什么。如果您能指出我在实施p2p和分布式系统方面的一些良好的在线资源,我也将不胜感激。
谢谢!
答案 0 :(得分:2)
我不会试图给出一个“完整”的答案(因为这个问题太大而且模糊不清)但是我可以指出一个有趣的难题:
答案 1 :(得分:1)
防止阻塞的秘诀是你的终点必须全部写成具有“协议”处理线程的服务器,这些线程与数据处理的线程分开。
至于线路协议,我已经迷恋于线路协议的JSON。它是人类可读的。无需长度字节就可以流式传输!它易于扩展,并且大部分不受协议版本更改的影响。
答案 2 :(得分:-1)
另一款值得一看的软件可能是KadC!