我有一个涉及 MVC 应用程序的情况,可能会向该应用程序上传大量高达 32MB 的数据块。每个块上传后,需要在客户端浏览器上传下一个块之前对其进行处理并发送响应。
最终,数据及其处理结果需要存储在 Azure 存储中。数据处理是 CPU 密集型的。鉴于传输这么多数据需要相当长的时间,我希望减少数据需要在机器之间执行的次数,并将工作移出 Web 服务器线程。
目前,这是通过将单个工作线程使用的作业排队来完成的。
然而,这个过程需要升级,以便它运行一个可执行的繁重工作。
在处理结束时,数据将上传到 Azure Blob 存储。因此,在发送响应之前,数据已经需要通过网络传输两次(AFAIK)。不理想。
我知道 Azure 中的不同排队选项,但我担心使情况变得更糟而不是更好。我不想过度解决这个问题,但确实需要使整个过程尽可能快速有效地运行。
a) 在云服务中的 Azure Web 角色和辅助角色之间,我可以期待什么样的数据传输速度?
b) 有没有办法将数据直接传输到 Azure 存储,然后在那里进行处理,而无需再次传输?
c) 工人角色和网络角色能否/是否真的在同一台机器上运行?
d) 我可以从网络应用程序内部运行 .exe 吗?如何获得路径?