我有一個項目可以開展工作,我需要構建一些客戶端 - 服務器應用程序,以便在Java中發送消息和其他內容。該項目的一個目標是處理故障轉移。當客戶端連接到服務器並且服務器死亡時,它會自動連接到備份服務器。我想要做的不是必需的,但我想實現負載平衡器,以便多個客戶端連接到首選服務器。負載均衡器,套接字和java
客戶端和服務器之間的連接必須使用TCP套接字。
這是網絡架構的示意圖:
客戶端連接到負載平衡器(UDP或TCP,我不知道這種情況的最好 之一)。
負載均衡決定應由哪個服務器是客戶端連接(最空單)
客戶端創建與指定服務器的TCP連接
我的問題是:
負載平衡器應如何工作以使客戶端連接到特定服務器?將服務器(ip,port)的信息發送到客戶端,客戶端用新的ip創建另一個套接字? (藍線)。
或者有沒有辦法讓負載均衡器連接這兩個端點(服務器#1 < - >客戶端#1),而不必將信息發送到客戶端?
PS:我在問你,因爲它似乎沒有必要爲每個客戶必須建立2個插槽,以獲得連接到服務器(第一插槽黑線,第二座藍線)
此設計決定取決於您的要求。平衡器路由消息和數據可能會使他成爲瓶頸並阻礙可擴展性。 – Fildor
我希望負載平衡器不像代理服務器那樣工作,因此每個客戶端都直接連接到特定的服務器 – andrepcg