簡體   English   中英

通過服務總線與WCF與Compute角色進行通信

[英]Communicating with a Compute role with Service bus vs. WCF

給定一個簡單的高級體系結構,例如具有Web角色的雲服務和計算角色,在什么情況下,我們將選擇使用WCF作為Web角色和計算角色之間的通信方法,而不是服務總線。

有很多關於服務總線的文檔和示例,但是我想了解使用服務總線(而不是WCF)是否對任何平台都有好處。

假設調用是同步的,而且很短(例如,用於將數據獲取到網站的典型API調用),您是否會選擇WCF而不是將消息排隊並回復到隊列中?

從邏輯上看,對於同步呼叫,WCF將提供最少的開銷和延遲?

我不完全了解該平台是否提供任何“聰明”的技巧來保持服務總線像通過WCF進行TCP連接一樣快(考慮到排隊開銷?),並且想進一步理解這一點。

目前,如果我要為這種類型的調用選擇實現,我會選擇WCF,這可能有點天真。

為了清楚起見,這些調用始終返回數據,它們運行時間不長,或者觸發並忘記。

謝謝!

我認為這取決於您要具體做什么。

服務總線通常更多地用於所謂的恆定聯系類型交互。 它應該性能更高,但是設置起來更復雜。 它還具有雙向通信功能。 因此,您將獲得更多的靈活性。

我將WCF換成更現代的Web Api。 兩者主要在提供內容方面解決了相同的核心問題。 我認為它只是一個API,不一定是消息傳遞和處理的平台。 他們解決了2個不同的核心問題。

我實際上將以不同的方式解決可能出現的問題,並使用Azure網站+ WebJobs。 這是同樣的事情。 您可以將WebJob綁定到Azure隊列,表或Blob,然后將消息放在該存儲機制上,作業將使用該存儲機制並執行某些操作。 我認為網絡角色不應該依賴工作中的內容。 作業完成后,可能會訪問您在AzureWeb站點上擁有的SignalR集線器,這會將狀態推回受影響的各方。

參考資料:WebJobs: https ://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/

SignalR: http ://signalr.net/

Azure Web應用程序: https : //azure.microsoft.com/zh-cn/services/app-service/web/

暫無
暫無

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

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