当前位置: 首页 > 面试题库 >

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

鲜于煜祺
2023-03-14
问题内容

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

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

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

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

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

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

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

谢谢!!


问题答案:

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

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

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



 类似资料:
  • 主要内容:一、从一个新闻门户网站案例引入,二、推算一下你需要分析多少条数据?,三、黄金搭档:分布式存储+分布式计算这篇文章聊一个话题:什么是分布式计算系统? 一、从一个新闻门户网站案例引入 现在很多同学经常会看到一些名词,比如分布式服务框架,分布式系统,分布式存储系统,分布式消息系统。 但是有些经验尚浅的同学,可能都很容易被这些名词给搞晕。所以这篇文章就对“分布式计算系统”这个概念做一个科普类的分析。 如果你要理解啥是分布式计算,就必须先得理解啥是分布式存储,现在我们从一个小例子来引入。 比如说

  • 我想创建一个基于AKKA的分布式电子邮件邮箱系统。当我的应用程序启动时,我想创建所有收件箱参与者,并在他们上启动调度器,以接收邮件的时间间隔为10秒。但是有一个问题是如何创建这些收件箱角色?是否可以在集群上创建actor或获得对它的引用(如果它存在的话)?Actor名称可以是数据库中的邮箱UUID,群集中只能存在一个具有特定UUID的Actor。 最重要的问题是如何在集群中创建以uuid为名称的a

  • 被别人指出问题时,别管别人能不能做到,看别人说的对不对,然后完善自己。别人能不能做到是别人的事情,自己能不能做到关系到自己能否发展的更好。——hustlihaifeng Go语言号称是互联网时代的C语言。现在的互联网系统已经不是以前的一个主机搞定一切的时代,互联网时代的后台服务由大量的分布式系统构成,任何单一后台服务器节点的故障并不会导致整个系统的停机。同时以阿里云、腾讯云为代表的云厂商崛起标志着

  • 数据存储容量的问题。 数据读写速度的问题。 数据可靠性的问题。 几种常见 RAID 的对比|名称|优点|缺点| |------|------|------| |RAID 0|使用 N 块磁盘的 RAID 0,将数据从内存写入磁盘时,将数据分成 N 块,并发写入,读取同理。所以,读写速度是单盘的 N 倍。|任何一块盘损坏,数据完整性破坏,数据不可用。| |RAID 1|数据写入磁盘时,将一份数据同时

  • 分离协同组件有个很多重要的优势。第一,它允许组件被独立的设计和实现。比如一个独立的组件能多个应用共享。第二,它使得一个系统架构师在协同部分的论证更加简单,当然这不是重点(至少在本书不是)。最后,它能使得一个系统能够将允许和管理协同组件分开。分开运行一个这样的组件能够简化产品中解决问题的任务。 软件组件运行在操作系统的进程中,大部分情况下是以多线程执行的。因此,Zookeeper服务器和客户端都是经

  • 当我们开始构建由微服务组成的分布式系统时,我们还会遇到在开发单体应用时通常不会遇到的非功能性要求。 有时,使用物理定律就可以解决这些问题,例如一致性、延迟和网络分区问题。然而,脆弱性和易控性的问题通常可以使用相当通用的模式来解决。在本节中,我们将介绍帮助我们解决这些问题的方法。 这些方法来自于Spring Cloud项目和Netflix OSS系列项目的组合。 版本化和分布式配置 在“12因素应用

  • 万法皆空,因果不空。 随着摩尔定律碰到瓶颈,越来越多的系统要依靠分布式集群架构来实现海量数据处理和可扩展计算能力。 区块链首先是一个分布式系统。 中央式结构改成分布式系统,碰到的第一个问题就是一致性的保障。 很显然,如果一个分布式集群无法保证处理结果一致的话,那任何建立于其上的业务系统都无法正常工作。 本章将介绍分布式系统中一些核心问题的来源以及相关的工作。

  • 邂逅相遇 网络延迟 存之为吾 无食我数 ​ —— Kyle Kingsbury, Carly Rae Jepsen 《网络分区的危害》(2013年) [TOC] ​ 最近几章中反复出现的主题是,系统如何处理错误的事情。例如,我们讨论了副本故障切换(“处理节点中断”),复制延迟(“复制延迟问题”)和事务控制(“弱隔离级别”)。当我们了解可能在实际系统中出现的各种边缘情况时,我们会更好地处理它们。 ​