2013-01-24 63 views
5

Azure中可能出現以下情況嗎?Azure服務總線中繼 - 從內部獲取數據

我需要從客戶端獲取數據到windows azure中,處理它並將其保存在數據庫或表格存儲中。客戶所在地位於防火牆/ NAT等後面。建立單一解決方案(這將適用於所有客戶)並允許我獲取特定客戶的數據的最佳方法是什麼?

基本上,工作者角色將從客戶1獲取數據,處理並保存數據;比從客戶2等等。

我以爲使用服務總線中繼,但是有可能建立一個自定義的wcf服務,它將運行於許多用戶,暴露在相同的端點,並允許工作角色向特定客戶請求數據到該端點?

回答

2

大衛,服務總線中繼是這樣的一個理想的解決方案。您可以編寫一個WCF服務,該服務將運行在每個客戶端,並連接到雲中的單個服務。使用服務總線中繼爲您提供了很多優勢: 1)對於客戶端服務,您不需要在其NAT /防火牆中打開任何入站端口,因爲服務總線客戶端將建立出站連接。 2)您可以在雲中運行一個或多個服務實例,並收聽Service Bus上的單個或多個地址/端點。通過這種方式,您既可以擴展服務範圍,也可以根據您的需求隔離每個客戶。 3)我們支持負載平衡,您可以讓多個發件人(從客戶位置)連接到單個端點地址,並且在這裏爲您再次提供基於雲的監聽器服務,您可以將多個實例連接到同一端點。4)廣泛的WCF綁定支持可讓您可以選擇適合您的需求

以下相應的渠道都上手其他資源: 概述:http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-relay/ 樣品:http://code.msdn.microsoft.com/windowsazure/Relayed-Messaging-Load-bd76a9f8

+0

不過,我有一個問題。在你提到的樣本中,我如何做到這一點,以便我不會在客戶端使用issuername:OWNER並且它是祕密密鑰?我的意思是出於安全原因,是否有可能創建一個名爲「MYCUSTOMER」的自定義發行者名稱,並且它是自己的密鑰,並且此自定義發行者名稱不會像擁有者擁有完全控制權。你懂我的意思嗎? –

+0

我知道這個問題是2歲,但我目前正在開發一個非常類似的解決方案。關於爲服務總線身份驗證創建其他身份,請查看Azure團隊的SBAzTool,這是一個命令行界面和DLL,可讓您生成服務總線身份和權限(即偵聽,發送,接收)和密鑰編程。 [Azure SBaZ工具](https://code.msdn.microsoft.com/windowsazure/Authorization-SBAzTool-6fd76d93)把這個放在這裏是爲了防止任何人遇到這個問題,就像我一樣!使用服務總線中繼的 –

+0

是好的,但爲此,要麼需要在本地環境中爲您的Web服務提供wcf包裝,要麼需要對配置進行一些更改。是否可以從Azure Web API調用本地Web服務而不改變本地Web服務上的任何內容。 – Ramprasad

2

我有些困惑 - 如果您需要從您的客戶那裏獲取數據,他們不能簡單地致電您的服務嗎?通常防火牆會允許出站請求?

服務總線繼電器會來真的很方便,如果你想將數據發送到您的客戶在異步或半主動提供時尚