我的工作是实现节点的分布式系统(例如p2p节点),这些节点中的每个节点(比如说A,B,C和D)执行某些功能,并且需要彼此交互以进行各种操作,例如同步操作和例如15个A节点与一组5个B节点进行交互,以进入负载最小的节点队列并获得令牌号,然后等待C将其重定向到空闲节点D,依此类推。
我对如何进行设计感到有些困惑:
我想到的协议是封装操作类型和要发送的其他内容的结构。另外,这是使用确认方案完成的,因此我可以确保另一方收到了该消息。
由于我没有中央服务器,因此如何处理分布式互斥方面。我猜每个节点都复制数据,但这听起来有点太昂贵了(更不用说愚蠢了)。
实施p2p系统时遵循的基本设计方法是什么,即我如何实施该程序以使其在接收时被阻止,但也可以发送进一步的更新等,同时从其他人那里获取有关“状态”的信息。整个系统。
如何确保请求的总排序?
另外,我可能还需要研究/面对其他问题。如果您能向我介绍一些实现p2p和分布式系统的良好在线资源,我也将不胜感激。
谢谢!!
我不会尝试给出“整体”答案(因为问题太大了,而且模棱两可),但我可以指出一个有趣的难题:
您可以使用消息队列系统(例如AMQP RabbitMQ:有实验性的C绑定)来在节点之间实现可靠的消息传递。
互斥:您可以使用Paxos等协议