2012-12-21 73 views
0

我將兩個VM(win 2012)設置爲一個雲服務。每個虛擬機運行一個簡單的TCP服務,接受連接,並保持連接,只要客戶希望。使用內部客戶端負載均衡Windows 2012 VM

的問題是,我無法從同一客戶端連接到端點兩次(當然不同的TcpClient對象)。

這是可能的,當沒有運行負載均衡。

還有一個問題,當服務器試圖連接到其自身(由於一些懶惰的編碼)。第一次,沒關係。與「服務器沒有響應」消息失敗的第二個連接。

我的問題很簡單:是否有可能從同一主機多次連接?

回答

0

如果你願意,你可以設置特定的端口,每個單獨的虛擬機上(基本上端點流量轉發到特定的VM)。 Michael Washam在他的文章here中說明了這一點。您將創建端點,但不是負載平衡端點。您的客戶端應用程序然後需要選擇連接到哪個服務器(基於端口號)。也許是隨機選擇?

相反,如果你正在尋找在客戶端連接到單個端口「粘性服務器」的解決方案,得到負載均衡到虛擬機的一個,然後停留在該VM:你需要使用haproxy,nginx等運行在自己虛擬機中的內容,根據您設置的規則將流量轉發到單個虛擬機。

+0

這會工作,但如果有一個衆所周知的事實,您無法連接兩次不回答這個問題?它工作的很好,除了一個網絡適配器不能有兩個連接到同一端點。如果你在不同的機器上有30個不同的人,他們每個人都可以連接一次,並且他們可以正確地獲得負載平衡今天起作用。 –

+0

看來我的問題開始是錯誤的。然而,你的回答確實解決了我的問題,我將其標記爲答案。 –

0

你的問題是有效的,其他任何人的利益找到它:

因爲Azure的軟件負載平衡器使用輪詢算法無法連接到同一臺服務器。所以不能保證每個請求將連接到哪個服務器。

http://www.windowsazure.com/en-us/manage/windows/common-tasks/how-to-load-balance-virtual-machines/

「的Windows Azure提供網絡流量的循環負載平衡,以公開定義雲服務的端口」

這就是爲什麼在其他答案的各個端口的方法是給力的必由之路與特定服務器進行通信。