我有一堆服务器,不断生成文件。这些文件需要发送到中心位置。文件永远不会超过50MB。我打算使用ZeroMQ发送这些文件(封装在消息中),这样在中心位置写入的文件不会同时发生(例如,使用scp进行传输会在目标上启动许多磁盘写入进程)。
我可以通过ZeroMQ看到几种方法:
我的可靠性要求是:
哪种插座适合此类应用?任何指向我应该看到的zmq模式的指针都会很棒。
答案 0 :(得分:0)
REQ / REP方法似乎是这项任务的最佳方法,因为消息数量少且需要高可靠性。
这可能有用,但是我看到一个主要问题:几个生产者将淹没消费者的网络接口,即使他们没有攻击磁盘或在消费者上产生进程。 在使用生产者启动的文件传输的任何设计中,这应该是一个问题。 PUSH / PULL插座也会出现同样的问题。
需要注意的另一点是:ZeroMQ消息在内存中缓冲,直到收到整个消息。因此,每个发送50MB文件的20个制作者将需要峰值1GB RAM。
作为替代方案,我建议只向文件夹发送文件名,然后按顺序提取文件。