2009-05-06 50 views
1

我正在創建一個我想要放入雲中的應用程序。此應用程序有一個主要功能。Azure:它適用於我的應用程序嗎?

它代表其他用戶託管套接字CLIENT會話(想象一下Beejive IM for iPhone,它主持IM會話以便客戶端維護這些IM網絡的狀態,允許客戶端隨意連接/斷開連接,而不會中斷即時消息網絡連接)。

現在,我現在計劃的方式是,一個「工作者實例」可能只能處理有限數量的客戶端會話(假設爲50,000個參數)。這些會議將是非常長期的工人任務。

這個問題我試圖讓我的頭腦是,我有時需要執行任務特定的客戶端會話(例如:如果我需要斷開客戶端會話)。通過Azure,我能夠排隊一個較小的任務,只有託管該特定客戶端會話的實例才能夠出列?

現在我正在考慮GoGrid作爲我的提供者,並且我使用Apache的Active Messaging Queue軟件解決了這個問題。我的Web應用程序將分配給特定實例ID的'斷開連接'任務排入隊列。因此每個客戶端會話都分配給特定的實例ID。然後該實例僅將分配給它的'disconnect'任務取出。

我想知道在Azure上做類似的事情是否可行,以及我通常會這樣做。我喜歡不必設置許多不同的虛擬機來擴展的想法,而只是部署一個包。此外,使用Azure的隊列而不是集成第三方產品(如Apache ActiveMQ,甚至MSMQ)會很好。

回答

1

我會非常關心在Azure上構建生產應用程序,直到功能集,定價和許可條款最終確定。對於初學者來說,你甚至不能在它和例如GoGrid或EC2或Mosso。所以我不認爲它可能最終成爲領先者。另外,我們知道所有這些系統在成熟時都會出現故障。亞馬遜的服務比其他任何服務都要廣泛得多,並且已經公開了很多年。恕我直言,選擇Azure是穩定疼痛的祕訣。

你有沒有考慮亞馬遜的排隊Simple Queue Service

+0

你是對的。最終,現在與Azure合作似乎不是一個好主意。未定價格是最讓我害怕的。我的應用程序將在6月份上線,這也是'測試'狀態的一個擔憂。 感謝您的意見! – Redth 2009-05-11 15:56:31

0

我認爲你可以絕對使用Windows Azure。我的建議是爲每個正在跟蹤的會話創建一個隊列。然後將該斷開連接消息排隊(例如)到該會話的隊列中。處理該連接的工作者實例應該是該隊列中唯一的輪詢,因此它應該處理在該連接上執行任務。

+0

雖然這個比例有多好?我希望可能會有數十萬的會話部署......每個隊列似乎都是很多開銷...... – Redth 2009-05-06 17:09:12

0

關於爲客戶端連接的託管套接字連接的應用程序,我會仔細檢查允許的內容,因爲我認爲只允許使用Azure進行HTTP和HTTPS連接。

相關問題