我需要为复杂的文件传输提出解决方案。我可以这样做,但我想知道是否有人知道开源解决方案已经完成了我想要做的90%。
要求很奇怪。不要试图理解它们,它们是政治,领土和官僚主义的地狱混合物。
我控制两个服务器,每个服务器从一组上游源中获取文件。我对来源有一些影响(但不是完全控制)。我的两台服务器收集这些文件并将新文件链接到一个处理目录(这有点简化)。
我的两台服务器,我们称之为A和B,现在必须将这些文件发送到下游的一对服务器。我几乎无法控制下游服务器,我们称之为X和Y.
为了安全起见,我的本地部门希望文件在A和B之间重复,这一点让我感到高兴,但是下游接收者(不同的部门)坚持认为他们想要X和Y进行故障转移。 ..但每个文件只能复制到A或B,不能同时复制(或仅在极少数情况下)。如果下游人员只管理重复文件,那将很容易(呃)。鉴于文件名可以快速识别重复,这真的不难。哦,他们不想这样做。即使X或Y的失败可能会丢失一些文件。去图。
所以我正在研究一种算法来完成所有这些,并且我已经取得了一些进展,但是处理竞争条件,节点故障,节点重启,以及A和B的独立性等等。如果经过一个月的努力,朋友说“你为什么不使用SuperOpenSourceSolution?你可以让它在一天内工作!”我将会有点不高兴。 p>
那么......有没有人知道开箱即用(或接近这样)的解决方案?我知道那里有一般的MFT解决方案,但我没有听说他们可以做这种事情。
我已经看过rsync了,但我看不出它会如何处理奇怪的发行版。
感谢。
答案 0 :(得分:1)
看起来条件(5)很难,如果A和B可以查询你没有指定的X和Y的状态,它会有所减轻。
这让我想起了可能有用的NNTP Ihave/Sendme协议。
如果你不能自由地做出“你有 P ”机器X和Y的请求,我会感觉这个任务可能像经典{{3 }}。如果是这样,那么你必须做设计师面临不可能约束的事情,并提供令人满意的解决方案(例如Two Army Problem),其工作时间足够长或者“足够好”不够好,那么你必须向管理层表明他们确实已经问过不可能的事情。
我知道你说不要问,但为什么在幂约束(5)中禁止幂等转移呢?