2012-11-13 70 views
0

我正在使用TCP的實時客戶機 - 服務器系統上工作。系統必須準備24/7,每天30分鐘的截止時間。TCP廣播保留1個主要主機,忽略其餘

由於類似測試的原因,我想在系統中添加一些「影子服務器」,以便客戶端向主服務器和影子服務器發送請求。雖然請求應發送給所有服務器,但只有主服務器的回覆纔會發送回客戶端。影子服務器的回覆應該被忽略。

此外,啓動和停止陰影服務器不得對系統造成任何傷害。如果陰影出現,它會收到請求,如果它關閉,則客戶端主服務器不會發生任何事情。

有沒有辦法讓我在不更改客戶端或主服務器代碼的情況下執行此操作?

+0

'TCP廣播'已經是一個矛盾的詞彙。 TCP是一種點對點協議。 – EJP

+0

@EJP你是否建議沒有移動到UDP沒有辦法? – riza

回答

1

您不能在客戶端或服務器代碼中執行此操作,因爲TCP只是點對點連接。

也許你想要的是一個「前端負載均衡器」,它可以跟蹤服務器正在運行的情況,並將傳入的請求轉發給其中的一個服務器。

在高端,NetScaler做這一切。雖然我沒有親自配置這些設備之一,但我希望它可以同時擁有「主」和「備份」服務器。當我使用它們時,它在許多服務器之間平均分配負載。它也可以安排在「高可用性對」中,其中兩個連接在一個作爲「熱備用」的主連接失敗的情況下。

你可能不需要任何複雜的東西,但它可以說明這一點。

+0

我不想執行負載平衡,因爲陰影服務器不在備份主服務器。它用於其他目的,比如測試新建主要服務器以進行迴歸,記錄來來去去的消息等。 – riza

+0

爲了比較來自兩臺服務器的結果,您需要第三臺服務器。第三臺服務器接受所有傳入的連接並打開**兩個**後端連接,一個連接到主服務器,另一個連接到影子,將請求轉發到兩個連接。然後它將回復從主背面轉發給客戶端,但保留結果與來自陰影的回覆進行比較。這第三臺服務器也可以記錄一切。 –