我们有一个应用程序想要迁移到 Azure 以实现扩展。然而,在开始之前,有一个地方让我担心:
我们有一个用户被定向到的网页。页面后面的代码将发送到数据库并生成 HTML 报告。新的 HTML 文档与一堆图表和其他图像一起放置在临时文件中。然后用户将被重定向到这个新页面。
在 Azure 中,我们永远无法确定用户是否会被定向到同一台计算机,原因有多种:Azure 负载均衡器可能会根据容量将用户推送到另一台计算机,或者该计算机可能会被取消配置由于问题或其他原因。
因为这些只是非常频繁创建和删除的临时文件,所以我最好将应用程序的临时目录指向所有 Web 角色都具有读/写访问权限的某种共享驱动器到,然后能够将 URL 映射到此共享云端硬盘。那可能吗?还是这会比我想要的更复杂?
我仍然可以让每个实例写入其自己的本地临时目录。只需要一两秒的时间来喂养它们,因此我可以承担该实例是否在那微秒内停止运行的风险。这方面的问题是重定向到临时 HTML 文件是否将使用 http 1.1 并保持与该特定实例的连接。
谢谢, 贾森
最佳答案
您可能需要查看两件事:
- 使用支持某种分布式文件系统(基于 blob 存储)的 Windows Azure 网站。因此,您在 Windows Azure 网站“本地”存储的文件将可以从托管该网站的每台服务器上获取(如果您使用多个实例)。
- 提供 Blob 存储中的文件。因此,无需在每个实例上本地保存 HTML 文件(或尝试让用户坚持使用特定实例),只需将它们存储在 Blob 存储中并将您的使用重定向到那里即可。
关于file - 在 Azure 中创建和提供临时 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246684/