2013-08-12 56 views
2

如果我有3臺機器上運行的Web應用程序,支持網絡插座和一個客戶端連接到其中的一個,將每個請求總是在同一臺機器,或者可以在負載平衡器發送它到不同的機器?負載均衡的網絡套接字和長輪詢

基本上,一旦網絡瀏覽器確立了對網絡的插座的連接,可以在負載平衡器發送每個請求到不同的服務器?

如果是這樣,哪個負載平衡器可以做到這一點?

而且,如果我用這樣的檢測瀏覽器的兼容性,並選擇適當的協議氣氛framwork,怎麼會變成這樣影響負載均衡機會?

回答

3

如在basic description of websockets protocol on Wikipedia中所述,在通過HTTP協議完成握手之後,其他通信通過持續執行與確切服務器的TCP連接。

因此,會有在通常意義HTTP沒有「請求」,只是2端點(服務器和客戶端)交換數據。這就是爲什麼通常意義上的負載平衡是不可能的(通常不需要,因爲服務器可以同時處理很多併發的TCP連接 - 關於這一點的良好討論here)。這就是爲什麼通過websocket發送數據總是會被正確的服務器機器(正在等待的機器)接收到的。

如果你真的需要這一點,你可以在上面提到的職位描述使用L3負載均衡。

0

「基本上,一旦網絡瀏覽器確立了對網絡的插座的連接,可以在負載平衡器發送每個請求到不同的服務器?」

如果這是你想要的行動,是的。

Riverbed有一個軟件負載平衡器,可以實現這一點。 https://splash.riverbed.com/docs/DOC-1451