我需要建立一個系統,我們有一組機器產生獨特的文件,讓他們叫他們生產者和一組機器接收這些文件,我們稱之爲消費者。來自PRODUCERS的任何機器都可以將文件發送給一個或多個消費者[基於某種散列機制]。我需要建立一個機制,確保文件交付發生在一個有保證的mannner。即生產者或消費者可能會崩潰/重新啓動並能夠從他們離開的地方繼續。是否有任何傻瓜證明可擴展的方式來實現這一點,它似乎是任何容錯系統中相當普遍的需求?生產者和消費者的數量預計會隨時增加/減少。異步分佈式文件傳輸
2
A
回答
0
你所描述的可能是使用某種形式的消息傳遞最容易實現的。你可能想看看http://www.zeromq.org;我自己曾與這個圖書館合作,並可以全心全意地推薦它。
另一方面:如果你不需要使用C++,在你的情況下,挑選一些Erlang可能會很有趣。
1
您所描述的內容聽起來有點像Google File System體系結構的複製機制。你會是最感興趣的部分3.1和紙張的3.2,連同在圖中的插圖2
摘要(以簡化),因爲它適用於您的情況:
- 生產者發送數據,等待回覆。
- CONSUMER(s)答覆:「我已收到所有數據。」
- PRODUCER發送「完成寫入」命令,等待回覆。
- CONSUMER(s)答覆:「我已將數據刷新到磁盤。」
- 現在(並且只有現在)考慮數據,「保存」。
GFS如在論文中描述實現了許多優化,包括流水線寫入到消費者而不是同時橫跨Ñ機分割一個機器的帶寬。
爲了進一步通過崩潰保證您的安全,您可以使用Intent Log使寫操作冪等。這可能只在生產者的末端(例如,在超時之後重試),或者在消費者的末端(重啓時,繼續操作)。
相關問題
- 1. C#異步套接字文件傳輸
- 2. 異步使用webclient傳輸文件
- 3. 分佈式計算:異步接收
- 4. 與java的異步傳輸模式
- 5. IE8異步文件上傳
- 6. 異步JQUERY文件上傳
- 7. 異步數據傳輸CUDA
- 8. 使用ASP.Net Framework 2.0異步傳輸大文件
- 9. 異步FTP上傳文件列表
- 10. 如何異步上傳ActionScript文件?
- 11. 多個異步文件上傳asp.net
- 12. 異步文件上傳點擊
- 13. 異步後臺多文件上傳?
- 14. 問題jQuery異步文件上傳
- 15. 上傳文件異步地MVC.NET
- 16. 使用動態添加的輸入文件控件異步上傳文件
- 17. 與ExtJS異步發佈文件的最佳方式
- 18. 上傳文件時無法異步分配ViewState
- 19. 使用flXHR跨域異步多部分POST文件上傳?
- 20. Mule託管文件傳輸同步
- 21. 分佈式文件壓縮
- 22. 流式傳輸wav文件
- 23. 異步批量數據傳輸
- 24. C#異步對象傳輸(套接字?)
- 25. Python到PHP異步數據傳輸
- 26. 使用其他文件以及EMR流式傳輸步驟?
- 27. ASP.NET以異步方式發佈到URL
- 28. Etherpad Lite傳輸整個文件還是隻傳輸差異?
- 29. mercurial傳輸完整文件還是僅傳輸差異?
- 30. 未找到Hadoop文件中的分佈式緩存異常