我正在嘗試確定性能最佳的WCF服務託管方案。我正在組裝一個非常高容量的內部部署Web應用程序(最終將在Azure中託管)。 ASP.Net應用程序將使用NetTcpBinding與工作角色中託管的WCF服務進行通信。我想驗證以下假設:工作人員角色WCF性能
1)將服務託管在工作角色中,然後使用服務總線(使用ACS進行安全性)來連接客戶端和服務總是比託管工作角色中的WCF服務要慢,直接連接到端點,並使用用戶名/密碼方法。
2)REST服務總是比NetTcpBinding服務慢,因爲它們使用HTTP而不是二進制。
最初,我選擇了ServiceBus方法,因爲我喜歡安全機制的乾淨程度,但除非正在進行的連接可以是直接的,否則中繼將造成相當大的開銷。
基於這些假設,我選擇了:在輔助角色託管 -WCF服務 -custom用戶名/密碼或使用ACS的用戶名/密碼?????? -NetTcpBinding
這聽起來是對的嗎?另一個要求是我需要創建的最少量的安全特定代碼。所以,我應該使用ACS用戶名/密碼模型還是????
有關如何設置性能最佳,最少自定義代碼安全性的任何見解都非常棒!
謝謝
謝謝傑里米。內部端點的問題在於,只有在Web應用程序託管在Azure中後才能使用,最初不會。你對db和服務器之間的延遲的發現很有趣。我絕對會發表我的發現。感謝帖子! –
嗯,這很有趣:「Windows Azure在每個公共端點上提供了負載平衡,允許您根據需要將應用擴展到儘可能多的實例。您需要確保您的應用程序是無狀態的(或將狀態存儲在公共區域不同的實例,比如blob或表),唯一沒有負載平衡的端點是內部端點,因此,如果你正在做一些類型的角色間通信,比如從一個web角色到幾個工作角色實例之一,在內部端點上的wcf服務,您需要處理這些實例間的負載平衡。「 SO張貼 –