本發(fā)明屬于計算機,具體涉及一種服務器之間保持心跳連接的方法。
背景技術:
1、隨著云計算和大數(shù)據(jù)技術的飛速發(fā)展,服務器集群成為處理海量數(shù)據(jù)和提供高效服務的關鍵基礎設施。在服務器集群中,服務器之間的協(xié)作和通信至關重要,任何一個節(jié)點的故障或連接中斷都可能對整個系統(tǒng)的穩(wěn)定性和可用性造成嚴重影響。因此,如何保持服務器之間的穩(wěn)定連接,確保系統(tǒng)的可靠運行,成為了一個重要的技術挑戰(zhàn)?,F(xiàn)有技術上存在以下幾點不足:(1)技術標準和協(xié)議不統(tǒng)一:當前市場上存在多種不同的心跳連接技術和協(xié)議,這些技術和協(xié)議之間缺乏統(tǒng)一的標準,導致不同服務器之間的兼容性和互操作性受限。這增加了部署和維護的復雜性,并可能限制了服務器集群的規(guī)模和靈活性。(2)安全性和隱私保護不足:一些現(xiàn)有技術可能在心跳連接過程中缺乏足夠的安全性和隱私保護措施。例如,心跳包可能未經(jīng)加密或認證就被傳輸,使得數(shù)據(jù)容易受到攻擊和篡改。此外,服務器之間的心跳連接可能暴露敏感信息,如服務器狀態(tài)、負載情況等,這增加了隱私泄露的風險。(3)可擴展性和靈活性受限:隨著服務器集群規(guī)模的擴大和網(wǎng)絡結構的復雜化,現(xiàn)有技術可能面臨可擴展性和靈活性的挑戰(zhàn)。一些技術可能無法支持大規(guī)模服務器集群的心跳連接,或者無法根據(jù)業(yè)務需求動態(tài)調整心跳連接的參數(shù)和策略。這限制了系統(tǒng)的適應性和靈活性,使得系統(tǒng)難以滿足不斷變化的業(yè)務需求。(4)故障恢復和容錯能力有限:現(xiàn)有技術可能缺乏高效的故障恢復和容錯能力。當服務器或網(wǎng)絡發(fā)生故障時,系統(tǒng)可能無法及時檢測和恢復心跳連接,導致服務中斷或數(shù)據(jù)丟失。此外,一些技術可能缺乏容錯機制,無法在網(wǎng)絡擁堵或服務器繁忙時保持穩(wěn)定的心跳連接。
技術實現(xiàn)思路
1、鑒于以上存在的問題,本發(fā)明提供一種服務器之間保持心跳連接的方法,用于利用udp服務和定時任務確保了服務器集群的穩(wěn)定性和可用性。
2、為解決上述技術問題,本發(fā)明采用如下的技術方案:
3、一種服務器之間保持心跳連接的方法,應用于包括客戶端、主服務器和子服務器的服務器之間保持心跳連接的系統(tǒng),其中主服務器包括服務啟動模塊、新增服務模塊、刪除服務模塊、心跳連接集合模塊、心跳丟包集合模塊、心跳連接定時任務模塊、心跳丟包定時任務模塊、離線判定模塊、udp服務端模塊、上線回調模塊和離線回調模塊;子服務器包括創(chuàng)建心跳模塊、udp客戶端模塊和停止心跳模塊,包括以下步驟:
4、s10,設置心跳連接定時任務監(jiān)聽心跳連接集合設置服務啟動模塊在主服務器啟動時,創(chuàng)建udp服務端模塊、心跳連接定時任務模塊和心跳丟包定時任務模塊;
5、s20,設置心跳連接定時任務監(jiān)聽心跳連接集合設置客戶端向主服務器發(fā)送新增服務器的請求;設置新增服務模塊接收客戶端傳遞的要新增的子服務器信息,所述子服務器信息包括子服務器ip和子服務器標識,將子服務器信息添加至心跳連接集合模塊中,交由心跳連接定時任務模塊統(tǒng)一進行監(jiān)測并創(chuàng)建心跳;
6、s30,設置心跳連接定時任務監(jiān)聽心跳連接集合設置心跳連接集合模塊以鍵值對集合方式存儲要創(chuàng)建心跳連接的子服務器信息,其中鍵為子服務器標識,值為子服務器信息,在當前集合內的子服務器包括要新增的和已離線的;
7、s40,設置心跳連接定時任務模塊監(jiān)測心跳連接集合模塊中的數(shù)據(jù),循環(huán)獲取子服務器信息并調用對應子服務器的創(chuàng)建心跳模塊,根據(jù)子服務器標識生成對應密鑰,如果響應成功說明心跳建立成功,將該子服務器從心跳連接集合模塊中移除,添加至心跳丟包集合模塊中,同時調用上線回調模塊進行上線通知;
8、s50,設置心跳連接定時任務監(jiān)聽心跳連接集合;調用服務器的啟動心跳接口,其中參數(shù)包括udp端口及主服務器相關信息;子服務器向主服務器返回啟動結果;若失敗無需任何操作,通過定時任務持續(xù)調用;啟動成功后,主服務器將該子服務器信息從心跳連接集合中移除,將該子服務器信息加入心跳丟包集合中,同時將丟包數(shù)歸零;觸發(fā)服務器上線通知;子服務器定時向主服務器發(fā)送udp心跳包;主服務器將該子服務器在心跳丟包集合中的丟包數(shù)歸零;心跳丟包定時任務掃描到心跳丟包集合;針對心跳丟包集合中的每個服務器丟包數(shù)加1;將加1后的丟包數(shù)量交由離線判定模塊處理,當丟包數(shù)量超過設置的大小時,將該子服務器信息從心跳丟包集合中移除或進行二次確認后將該子服務器信息從心跳丟包集合中移除;將服務器信息加入心跳連接集合中;觸發(fā)服務器離線通知;離線回調模塊執(zhí)行相應的回調操作。
9、一種可能的實施方式中,進一步包括:
10、s60,設置客戶端向主服務器發(fā)送刪除服務器的請求;主服務器的刪除服務模塊接收客戶端傳遞的要刪除的子服務器標識,主服務器向子服務器調用服務器的停止心跳接口,參數(shù)包括:主服務器相關信息;子服務器向主服務器返回停止結果;若失敗則無需任何操作;若停止成功,將該子服務器信息從心跳丟包集合中移出;同時調用子服務器的停止心跳模塊進行清理,觸發(fā)服務器離線通。
11、一種可能的實施方式中,s50中,所述心跳丟包集合模塊以鍵值對集合方式存儲已創(chuàng)建心跳連接的子服務器信息,鍵為子服務器標識,值為子服務器的連續(xù)丟包數(shù)量,在當前心跳丟包集合內的子服務器均為心跳連接正常的。
12、一種可能的實施方式中,s50中,所述進行二次確認后將該子服務器信息從心跳丟包集合中移除包括:當離線判定模塊發(fā)現(xiàn)丟包數(shù)量大于閾值后,采用tcp協(xié)議請求對應子服務器的創(chuàng)建心跳模塊進行二次確認:當二次確認成功時將該子服務器的丟包數(shù)量歸零;當二次確認失敗時則認為離線,將該子服務器信息從心跳丟包集合中移除。
13、采用本發(fā)明具有如下的有益效果:
14、(1)自動監(jiān)控和管理服務器連接狀態(tài):通過啟動udp服務和定時任務,能夠自動地監(jiān)控和管理主服務器與子服務器之間的連接狀態(tài),確保服務器集群的穩(wěn)定性和可用性。
15、(2)優(yōu)化服務器心跳管理:通過使用“心跳連接集合”和“心跳丟包集合”,能夠更高效地管理服務器的心跳連接。一旦檢測到某個服務器的丟包數(shù)超過設定閾值,系統(tǒng)會將其重新加入“心跳連接集合”,并嘗試重新建立連接,并在必要時通知管理員,減少了管理員的干預需求,提高了系統(tǒng)的自恢復能力。
16、(3)提高系統(tǒng)可擴展性和靈活性:通過動態(tài)管理“心跳連接集合”和“心跳丟包集合”,可以適應不同規(guī)模和需求的服務器集群。無論是添加新服務器還是刪除舊服務器,系統(tǒng)都能夠自動調整心跳連接設置,確保整個集群的穩(wěn)定運行。
17、(4)提供服務器狀態(tài)通知:當有新服務器上線或現(xiàn)有服務器離線時,系統(tǒng)能夠及時發(fā)送通知給管理員,有助于管理員及時了解服務器的運行狀態(tài),并采取相應的管理措施。
18、(5)提高安全性:在創(chuàng)建心跳時傳遞給子服務器加密密鑰,讓子服務器在發(fā)送udp包時對內容進行對稱加密,保證了傳輸過程中的安全性。
1.一種服務器之間保持心跳連接的方法,其特征在于,應用于包括客戶端、主服務器和子服務器的服務器之間保持心跳連接的系統(tǒng),其中主服務器包括服務啟動模塊、新增服務模塊、刪除服務模塊、心跳連接集合模塊、心跳丟包集合模塊、心跳連接定時任務模塊、心跳丟包定時任務模塊、離線判定模塊、udp服務端模塊、上線回調模塊和離線回調模塊;子服務器包括創(chuàng)建心跳模塊、udp客戶端模塊和停止心跳模塊,包括以下步驟:
2.如權利要求1所述的服務器之間保持心跳連接的方法,其特征在于,進一步包括:
3.如權利要求1或2所述的服務器之間保持心跳連接的方法,其特征在于,s50中,所述心跳丟包集合模塊以鍵值對集合方式存儲已創(chuàng)建心跳連接的子服務器信息,鍵為子服務器標識,值為子服務器的連續(xù)丟包數(shù)量,在當前心跳丟包集合內的子服務器均為心跳連接正常的。
4.如權利要求1或2所述的服務器之間保持心跳連接的方法,其特征在于,所述進行二次確認后將該子服務器信息從心跳丟包集合中移除包括:當離線判定模塊發(fā)現(xiàn)丟包數(shù)量大于閾值后,采用tcp協(xié)議請求對應子服務器的創(chuàng)建心跳模塊進行二次確認:當二次確認成功時將該子服務器的丟包數(shù)量歸零;當二次確認失敗時則認為離線,將該子服務器信息從心跳丟包集合中移除。