我有這種情況。我有一個冗餘的TCP服務器設置,它接受一個輸入,然後永遠拋出大量數據包。在閱讀它們時,我也試圖通過在套接字上執行send來跟上TCP客戶端的服務器狀態。 但我的服務器冗餘共享一個虛擬IP。所以如果服務器1關閉,服務器2啓動並使用相同的VIP(在所有時間點VIP都啓動並運行)。所以我的發送技術是能夠找出這種情況。 我Server2上等待客戶端的投入,但由於發送沒有做我期望它做的工作,我不能夠重新發送輸入。如何從客戶端找出TCP服務器的狀態(在冗餘服務器的情況下)?
int status = ::send (m_sock, s.c_str(), s.size(), MSG_NOSIGNAL);
if (status == -1)
{
return false;
}
else
{
return true;
}
有人可以幫我怎麼弄出這種故障轉移? TCP會話狀態信息也必須從主服務器到次級,這需要特殊的軟件複製 -
什麼你問?您的故障轉移是否已經運行並且想要了解服務器何時死亡?你在問如何設置這樣的場景? – cnicutar
故障轉移在服務器端工作得很好。但是我的客戶在這個過程中迷失了方向,因爲在故障轉移之後服務器期望客戶端輸入。我的客戶不能發送輸入,除非它能理解故障轉移發生。這是我被卡住了。 – shKv
請解釋故障轉移的工作原理。 – cnicutar