我正在用Python开发一个分布式应用程序。该应用程序有两个主要的程序包,程序包A和程序包B,它们分别工作,但通过队列相互通信。换句话说,程序包A生成一些文件,并将它们排入(排队)到队列中,程序包B以先到先得的方式将文件出队(弹出)并处理它们。程序包A和程序包B都将作为docker容器部署在Google Cloud上。
我需要计划什么是最好的存储选项,以保留文件和队列。文件和队列可以临时存储和使用。
我认为我的选择是Cloud Bucket或Google数据存储,但不知道如何选择以及什么是最佳选择。从开发的角度来看,最好的选择是一种低成本,可靠且易于使用的解决方案。
欢迎任何建议...谢谢!
答案 0 :(得分:2)
Google Cloud Storage听起来对您来说是正确的选择,因为它支持大文件。您不需要数据存储区等提供的功能,例如通过其他字段进行查询。
如果只需要处理一次文件,则在文件首次上传时,可以使用GCS pubsub notifications并从pubsub触发处理器。
如果您需要更复杂的任务,例如一个任务可以分派到全部在同一文件上运行的多个子任务,那么最好使用单独的任务系统,例如celery,并在任务定义中传递GCS URL。