我正在考虑将我的web应用迁移到Windows Azure以实现可伸缩性目的,但我想知道如何最好地对我的应用进行分区。在文件绑定应用中与Azure的体系结构设计和角色通信
我期望我的场景是典型的,如下所示:我的应用程序允许用户上传原始数据,这将被处理并生成报告。用户然后可以查看他们的原始数据并查看他们的报告。
到目前为止,我正在考虑一个web角色和一个工作者角色。但是,我知道一个VHD可以挂载到一个具有读/写访问权限的实例上,所以我的web角色和worker角色都需要访问一个通用的文件存储。所以也许我需要一个Web角色和两个独立的工作角色,一个工作角色用于处理,另一个角色用于读写文件存储。这是一个好方法吗?
我很难说明角色之间的关系和由此分区之间的通信所引起的开销之间的关系,因此欢迎任何输入。
虽然我们建立在彼此的评论上,但我也想说,虽然Blob存储非常出色,队列存储性能很好,但是值得仔细考虑是否要使用Table存储或是否要使用SQL Server 。到目前为止,在我创建的所有内容中,SQL Server已经被证明具有更多的可用性和实用性 - 如果您需要做报表等工作,那么表存储仍然很难使用。这完全是“在我看来” - 我想我仍然部分停留在关系型思维模式中! – Stuart 2011-03-20 20:08:52
在这种情况下,使用表与SQL Azure是个人选择,但查找起来似乎非常简单(当您只需要单个字段进行索引时,它非常适合Table Storage)。 Table Storage运行价格为0.15美元/ GB,其中SQL Azure的运行价格为10.00美元/ GB。使用表格存储功能,您可以测量您的存储空间使用情况。使用SQL Azure,即使存储1KB,最低成本也是10美元。但是,如果您需要在大型表中使用多个索引,则SQL Azure可以提高性能。 – 2011-03-20 20:47:36
是的 - 对不起 - 可能比帮助困惑更多...因为我试着说“这是值得仔细考虑的” - 正如你所说的那样,也包括“个人选择”:) – Stuart 2011-03-20 21:05:49