我正处于设计基于 Azure 的应用程序的早期阶段。考虑到我可能预期的需求的可变性,Azure 吸引我的一件事是可伸缩性。因此,我试图保持松散耦合,以便在需要时添加实例。
我看到的为 Azure 构建应用程序的建议包括将 Web 角色逻辑保持在最低限度,并在辅助角色中完成处理,使用队列进行通信以及某种后端存储,如 SQL Azure 或 Azure Tables。这对我来说似乎是个好主意,因为我可以毫无问题地扩展应用程序的一个或两个部分。但是我很好奇是否有任何最佳实践(或者如果有人有任何经验),什么时候最好让网络角色直接与数据存储对话,而不是通过队列发送数据?
我正在考虑我有一个简单的从网络角色插入的情况 - 虽然我可以将它设置为一条消息,将它发送到队列中,并让一个工作角色拿起它并进行插入,它似乎有很多双重处理。但是,我也很欣赏,从长远来看,这可能会更好,以防万一 Web 角色不堪重负或插入需要更复杂的逻辑。
我意识到这可能是一个答案是“这完全取决于情况,检查你的性能指标”的情况 - 但如果有人有任何想法,我会非常感激!