我一直在为这个概念苦苦挣扎。我正在尝试提出一个松散耦合的 Azure 组件设计,该设计使用队列和辅助角色完全可扩展,它们使项目出列并处理。我可以随意扩展工作角色,发布到队列绝不是问题。到目前为止一切都很好,但是,似乎唯一可以使用的真实世界模型是“一劳永逸”。它对于日志记录和其他单向操作非常有用,但是假设我想使用队列/工作角色上传文件,将其保存到 blob,然后在完成后得到响应。或者这种类型的模型不应该用于在线应用程序吗?操作完成后发回通知的最佳方式是什么?我是否创建一个响应 Q,然后(以某种方式)检索相关的响应?任何帮助是极大的赞赏!!!!!
问问题
159 次
2 回答
4
我通常做一个投票模型。
- 客户端(通常是浏览器)发送请求以完成某些工作。
- 前端(Web 角色)将工作排入队列并使用 ID 进行回复。
- 后端(工作角色)处理队列并将结果存储在名为 的 blob 或表实体中。
- 客户端每隔一段时间进行轮询(“完成了吗?”)。
- 前端检查 blob 或表实体是否存在并相应地回复。
有关此模式的一个示例,请参阅http://blog.smarx.com/posts/web-page-image-capture-in-windows-azure。
于 2011-09-01T19:56:42.553 回答
1
您还可以查看 servicebus appfabric 而不是使用队列。使用 servicebus,您可以从 servicebus appfabric 发送消息、使用队列等。你可以去发布和订阅而不是投票!
于 2011-09-03T20:04:07.503 回答