2011-09-01 82 views
0

我一直在爲這個概念奮鬥一段時間。我試圖想出一個鬆耦合的Azure組件設計,它使用隊列和工作者角色完全可擴展,隊列和工作者角色可以將這些項目出列和處理。我可以隨意調整工作角色,並且發佈到隊列從不是問題。到目前爲止這麼好,但是,這似乎是唯一的現實世界模型可以工作在火和忘記。對於日誌記錄和其他單向操作來說,這會非常棒,但是假設我想要使用隊列/輔助角色上載文件,將其保存爲blob,然後在完成後獲取響應。或者應該將這種類型的模型用於在線應用程序?操作完成後發送通知的最佳方式是什麼?我是否創建了一個響應Q,然後(以某種方式)檢索相關響應?任何幫助是極大的讚賞!!!!!Azure鬆散耦合/可擴展

回答

4

我通常會做輪詢模型。

  1. 客戶端(通常是瀏覽器)發送一個請求來做一些工作。
  2. 前端(網絡角色)排隊工作並用ID回覆。
  3. 後端(輔助角色)處理隊列並將結果存儲在名爲的blob或表實體中。
  4. 客戶端調查(「完成了嗎?」)在某個時間間隔。
  5. 前端檢查以查看blob或表實體是否存在並相應地進行回覆。

請參閱http://blog.smarx.com/posts/web-page-image-capture-in-windows-azure瞭解此模式的一個示例。

+0

這是你!很酷的迴應。起初,我在考慮排隊迴應,但那會是錯誤的。我喜歡id/blob解決方案。十分感謝!!! PS,雲蓋ROCKS! –

+0

很高興有幫助。 :-) – smarx

1

你也可以看看servicebus appfabric而不是使用隊列。使用servicebus可以發送消息,使用servicebus appfabric中的所有隊列等。你可以去發佈和訂閱,而不是輪詢!

+0

+1我已經使用服務總線進行事件通知,並且效果很好。很值得一看。並不總是最便宜的做事方式,但非常整齊。 –