首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步分布式文件传输

异步分布式文件传输
EN

Stack Overflow用户
提问于 2010-07-02 15:19:29
回答 2查看 272关注 0票数 2

我需要建立一个系统,其中我们有一组机器产生独特的文件,让他们称为生产者,一组机器接收这些文件,我们称之为消费者。生产者的任何机器都可以基于某种散列机制将文件发送给一个或多个消费者。我需要建立一种机制,以确保文件以有保证的方式交付。即生产者或消费者可能崩溃/重新启动,并能够从他们停止的地方继续。有没有什么简单的可伸缩的方法来实现这一点,这在任何容错系统中似乎都是很常见的需求?生产者和消费者的数量预计会在运行中增加/减少。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-02 15:39:54

使用某种形式的消息传递来实现您所描述的内容可能是最容易的。您可能想看看http://www.zeromq.org;我自己也使用过这个库,我可以全心全意地推荐它。

附注:如果您不需要使用C++,那么在您的情况下选择一些Erlang可能会很有趣。

票数 0
EN

Stack Overflow用户

发布于 2010-07-02 15:54:48

您所描述的内容听起来有点像Google File System架构的复制机制。您最感兴趣的是本文的3.1和3.2节,以及图2中的插图。

适用于您的案例的摘要(带有简化):

  1. PRODUCER发送数据,等待reply.
  2. CONSUMER(s)回复,“我已收到所有data."
  3. PRODUCER发送的完成写入”命令,等待reply.
  4. CONSUMER(s)回复,“我已将数据刷新到磁盘。”
  5. 现在(也只有现在)考虑数据,“已保存”。

本文中描述的GFS实现了许多优化,包括将写操作流水线传输给使用者,而不是同时将一台机器的带宽分配给n台机器。

为了通过崩溃进一步保证安全性,可以使用Intent Log使写操作成为幂等操作。这既可以只在生产者端(例如,您在超时后重试),也可以在消费者端(在重新启动时,继续操作)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3163901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档