【发布时间】:2012-03-12 20:56:23
【问题描述】:
我正在设计一个系统,让多个用户上传大量数据。我最初的示例是 100 个用户每天上传 100Mb。
我需要获取数据,将其插入数据库,处理数据库中的数据 (ETL),然后使用“抛光”数据进行分析。
上传的文件将以 65k 为单位接收(初始设计)。
为了避免遇到瓶颈,我正在考虑使用 MSMQ 构建它,我将数据放入 MQ,然后将其传递给不同的“程序/工具”,这些“程序/工具”将处理数据,然后通过 MSMQ 向 ETL 工具发送信号开始做它的事。
另外,我正在考虑一种“线性”方法:
--> receive data
--> save data to sql
--> wait for upload finish (run the two above until no more chunks)
--> signal the ETL to do its thing
--> When ETL is done report "Done" to callee
哪种方法似乎更好?有没有其他选择?目标是拥有数千名用户......据我所知,这种方法会锁定客户端/下载器。
【问题讨论】:
-
我不想对大文件使用消息传递,只是将它们流式传输到某个接收器(数据库、文件系统等)。您是否必须为每个文件单独触发 ETL 过程,还是以类似批处理的模式(例如每晚、每小时)?
标签: architecture scalability msmq mom