我想开发一个系统来从大型资源站点(Whois数据库,Shodan,Censys等)下载非常大的文件(来自REST /流事件/ FTP等)-大约1-3TB的文件大小分成每个文件1GB〜来源)。
系统应执行以下操作:
转换为csv格式
处理数据(即将时间格式转换为我的时间格式)
将大型csv文件拆分并压缩为Zip中的最小csv文件(即每个10mb)。
我想到的是发展为微服务概念并使用RabbitMQ。
第一个Micro服务只需下载文件,然后将消息连同文件位置指示写入RabbitMQ。
第二个将文件转换为csv,并使用新文件将消息写入RabbitMQ。
第三个操作数据(转换列等)并使用新的csv文件写入消息。
第四次拆分和压缩。
我只是想知道是否有另一种设计来开发该系统,也许我应该选择另一种设计?
我想听听任何建议。
谢谢!
答案 0 :(得分:2)
对于您的用例,我建议使用Cadence Workflow。是的,您可以使用RabbitMQ构建流程,但是最终实现了Cadence开箱即用的许多功能。
与使用队列进行任务处理相比,Cadence具有许多其他优点。
请参见介绍Cadence编程模型的the presentation。