簡體   English   中英

Azure員工間流程通信

[英]Azure Inter-worker process communication

我正在努力移植一個旨在在非Azure環境中工作的應用程序。 該體系結構的元素之一是無法擴展的單例,我希望替換為單個單元當前提供的資源的多個工作進程。

我已經進行了必要的更改以替換單例,並且正在構建通信框架以提供從UI服務器到資源工作者的互連,我想知道是否應該在WCF服務上使用TCP綁定。還是使用Azure Service Bus更有意義。 TCP / WCF很簡單,但不能解決完整的問題:如何確保只有一個工作進程處理UI請求?

通過閱讀可用的文檔,聽起來服務總線將解決此問題,但是我還沒有看到具體的實現示例。 我希望這里的人可以幫助和/或為我指明正確的方向。

看來Azure Service Bus 隊列是適合您的解決方案。

可以通過3種不同的方式使用Azure Service Bus:

  • s列
  • 主題
  • 繼電器

從Windows Azure網站:

服務總線隊列提供單向異步排隊。 發送方將消息發送到服務總線隊列,而接收方在稍后的時間接收該消息。 隊列只能有一個接收者

您可以在以下位置找到更多信息: http : //www.windowsazure.com/en-us/develop/net/fundamentals/hybrid-solutions/

添加到大衛的答案。

另一種選擇是使用Windows Azure Queues 它們旨在促進Web角色與輔助角色之間的異步通信。 從您的Web角色中,您可以將消息推送到隊列中,該隊列由您的輔助角色輪詢。

您的輔助角色可以從隊列中"Get"一條或多條消息並處理這些消息。 從隊列中獲取消息時,可以指示隊列服務使這些消息在一定時間內對其他呼叫者不可見(稱為message visibility timeout )。 這樣可以確保只有輔助角色實例才能處理消息。

輔助角色完成工作后,可以簡單地刪除消息。 如果處理消息時出錯,則可見性超時期限到期后,消息會自動重新出現在隊列中。 您可能會發現此鏈接很有用: http : //www.windowsazure.com/zh-cn/develop/net/how-to-guides/queue-service/

Azure隊列不是為進程間通信而設計的,而是為應用程序間通信而設計的。 消息傳遞延遲很長,並且無法保證傳遞時間。 Websockets或NetTcpBinding更適合於實時相互通信的應用程序。 盡管必須承認,但是您可以通過queuez獲得一些免費的東西,尤其是鎖定機制。 就是我的2美分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM