繁体   English   中英

通过文件系统窗口跨多台计算机同步多个进程

[英]Synchronize multiple processes across multiple machines through file system windows

我正在编写一个应用程序,该应用程序通过网络接收一些软件包,然后一些客户端从此应用程序接收这些软件包。 现在,我想使体系结构可扩展。 程序包临时存储在文件系统上,直到被消费者应用程序接收到为止。 如果我准备将要发送的程序包存储在某个文件夹中,则需要某种方式来区分正在处理的程序包和仍在等待处理的程序包。 这个想法是在程序包文件夹中创建特殊的锁定文件,并保持锁定状态,直到程序包传输完成为止(完成后删除此锁定文件和程序包文件夹本身)。 替代方案是使用某种共享资源(例如,消息队列或数据库)。 问题是使用文件系统进行这种进程间通信是否足够安全?

您可以使用任何介质来存储您的数据(无论哪种方式,它最终都将存储在文件系统中)。 您可能应该问自己的主要问题是您想拥有什么功能:扩展原始文件可能会遇到很多问题,可能难以实现安全性层(例如,基于角色的访问)等。

RabbitMQ似乎可以很好地解决您的情况,因为它提供了通用的排队机制以及持久性和可伸缩性。 我不知道您的项目的详细信息,但是我建议您查看Redis的类似功能以及在“队列”中修改对象的功能。

无论如何,基于文件的存储可能是尝试(创建MVP)的一个好主意,但我建议将来不要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM