小编典典

仅使用C的分布式系统设计

algorithm

我的工作是实现节点的分布式系统(例如p2p节点),这些节点中的每个节点(比如说A,B,C和D)执行某些功能,并且需要彼此交互以进行各种操作,例如同步操作和例如15个A节点与一组5个B节点进行交互,以进入负载最小的节点队列并获得令牌号,然后等待C将其重定向到空闲节点D,依此类推。

我对如何进行设计感到有些困惑:

  1. 我想到的协议是封装操作类型和要发送的其他内容的结构。另外,这是使用确认方案完成的,因此我可以确保另一方收到了该消息。

  2. 由于我没有中央服务器,因此如何处理分布式互斥方面。我猜每个节点都复制数据,但这听起来有点太昂贵了(更不用说愚蠢了)。

  3. 实施p2p系统时遵循的基本设计方法是什么,即我如何实施该程序以使其在接收时被阻止,但也可以发送进一步的更新等,同时从其他人​​那里获取有关“状态”的信息。整个系统。

  4. 如何确保请求的总排序?

另外,我可能还需要研究/面对其他问题。如果您能向我介绍一些实现p2p和分布式系统的良好在线资源,我也将不胜感激。

谢谢!!


阅读 261

收藏
2020-07-28

共1个答案

小编典典

我不会尝试给出“整体”答案(因为问题太大了,而且模棱两可),但我可以指出一个有趣的难题:

  1. 您可以使用消息队列系统(例如AMQP RabbitMQ:有实验性的C绑定)来在节点之间实现可靠的消息传递。

  2. 互斥:您可以使用Paxos等协议

2020-07-28