本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種分布式系統(tǒng)中節(jié)點的處理方法和一種分布式系統(tǒng)中節(jié)點的處理裝置。
背景技術(shù):
分布式系統(tǒng)是由地理上和物理上分散的各自獨立的一個或多個節(jié)點組成的系統(tǒng),節(jié)點包括有服務節(jié)點和中心節(jié)點。中心節(jié)點能夠?qū)τ诜展?jié)點進行統(tǒng)籌調(diào)配。這些節(jié)點連接在一起可以實現(xiàn)對資源的共享,分布式系統(tǒng)相當于一個統(tǒng)一的整體。
在分布式系統(tǒng)運作過程中,對服務節(jié)點的存活狀態(tài)的監(jiān)控是非常重要的一個環(huán)節(jié),通常的做法是,在分布式系統(tǒng)中的每一個服務節(jié)點都以預定周期向中心節(jié)點發(fā)送存活狀態(tài)信息,中心節(jié)點接收到存活狀態(tài)信息后,用以更新其狀態(tài)信息表。其中,狀態(tài)信息表中記錄了服務節(jié)點的最新更新時間和下次更新時間。中心節(jié)點為了監(jiān)控服務節(jié)點的存活狀態(tài),將不時查看狀態(tài)信息表確認服務節(jié)點的存活狀態(tài),如果發(fā)現(xiàn)服務節(jié)點的下次更新時間小于當前系統(tǒng)時間,便可以判定該服務節(jié)點狀態(tài)異常。
參照圖1所示的一種分布式系統(tǒng)中心節(jié)點和服務節(jié)點的工作流程示意圖,該系統(tǒng)的中心節(jié)點能夠?qū)τ诜展?jié)點進行管控,服務節(jié)點會定期將其存活狀態(tài)信息上報給中心節(jié)點,中心節(jié)點則根據(jù)存活狀態(tài)信息確認服務節(jié)點的存活狀態(tài),如果發(fā)現(xiàn)狀態(tài)異常的服務節(jié)點時進行失效處理流程。然而,中心節(jié)點有可能因為網(wǎng)絡延時而不能及時接收到服務節(jié)點上報的存活狀態(tài)信息,或者,有可能因為系統(tǒng)資源負荷過大而不能及時處理存活狀態(tài)信息,這些情況都有可能導致服務節(jié)點的存活狀態(tài)信息丟失,或者,下次更新時間失效等問題,那么可能會出現(xiàn)中心節(jié)點誤判服務節(jié)點存活狀態(tài)的情況。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本申請實施例以便提供一種克服上述問題或者至少部分地解決上述問題的一種分布式系統(tǒng)中節(jié)點的處理方法和相應的一種分布式系統(tǒng)中節(jié)點的處理裝置。
為了解決上述問題,本申請實施例公開了一種分布式系統(tǒng)中節(jié)點的處理方法,所述節(jié)點包括服務節(jié)點和中心節(jié)點,所述的方法包括:
獲取所述服務節(jié)點的存活狀態(tài)信息;
獲取所述中心節(jié)點的當前系統(tǒng)信息;
采用所述存活狀態(tài)信息和所述當前系統(tǒng)信息,確定所述服務節(jié)點是否存在異常;
若所述服務節(jié)點存在異常,則獲取所述中心節(jié)點的中心狀態(tài)信息;
依據(jù)所述中心狀態(tài)信息處理所述存在異常的服務節(jié)點。
優(yōu)選地,所述分布式系統(tǒng)中包括狀態(tài)信息表,所述獲取服務節(jié)點的存活狀態(tài)信息包括:
接收所述服務節(jié)點上傳的存活狀態(tài)信息;
采用所述服務節(jié)點的存活狀態(tài)信息更新所述狀態(tài)信息表。
優(yōu)選地,所述存活狀態(tài)信息包括服務節(jié)點的下次更新時間,所述當前系統(tǒng)信息包括所述中心節(jié)點的當前系統(tǒng)時間,所述采用存活狀態(tài)信息和所述當前系統(tǒng)信息,確定所述服務節(jié)點是否存在異常的步驟包括:
當達到預設(shè)時間時,遍歷所述狀態(tài)信息表中的下次更新時間;
采用所述下次更新時間和所述當前系統(tǒng)時間確定所述服務節(jié)點是否存在異常。
優(yōu)選地,所述采用下次更新時間和所述當前系統(tǒng)時間確定所述服務節(jié)點是否存在異常的步驟包括:
判斷所述下次更新時間是否小于所述當前系統(tǒng)時間;
若是,則將所述服務節(jié)點確定為存在異常;
若否,則將所述服務節(jié)點確定為不存在異常。
優(yōu)選地,所述中心狀態(tài)信息包括網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù),所述依據(jù)中心狀態(tài)信息處理所述存在異常的服務節(jié)點的步 驟包括:
采用所述網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù)確定所述中心節(jié)點是否負荷過重;
若是,則更新所述狀態(tài)信息表中所述存在異常的服務節(jié)點的存活狀態(tài)信息。
優(yōu)選地,所述網(wǎng)絡繁忙情況數(shù)據(jù)包括網(wǎng)絡吞吐量和網(wǎng)絡丟包率,所述系統(tǒng)資源使用情況數(shù)據(jù)包括系統(tǒng)的平均負荷,所述采用網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù)確定所述中心節(jié)點是否負荷過重的步驟包括:
判斷所述網(wǎng)絡吞吐量是否大于等于網(wǎng)絡帶寬;
判斷所述網(wǎng)絡丟包率大于預設(shè)丟包率;
判斷所述系統(tǒng)的平均負荷是否大于預設(shè)負荷閾值;
若所述網(wǎng)絡吞吐量大于等于網(wǎng)絡帶寬,和/或,所述網(wǎng)絡丟包率大于預設(shè)丟包率,和/或,所述系統(tǒng)的平均負荷大于預設(shè)負荷閾值,則確定所述中心節(jié)點負荷過重。
優(yōu)選地,所述更新狀態(tài)信息表中所述存在異常的服務節(jié)點的存活狀態(tài)信息的步驟包括:
延長所述狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間。
優(yōu)選地,所述更新狀態(tài)信息表中所述存在異常的服務節(jié)點的存活狀態(tài)信息的步驟包括:
向所述服務節(jié)點發(fā)送更新請求;
接收所述服務節(jié)點針對所述更新請求上傳的新的存活狀態(tài)信息;所述新的存活狀態(tài)信息中包括新的下次更新時間;
采用所述新的下次更新時間更新所述狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間。
優(yōu)選地,所述的方法還包括:
若所述服務節(jié)點不存在異常,則將所述服務節(jié)點作為失效的服務節(jié)點。
優(yōu)選地,所述將服務節(jié)點作為失效的服務節(jié)點的步驟之后,還包括:
在所述中心節(jié)點的中刪除所述失效的服務節(jié)點;
通知所述分布式系統(tǒng)中其他服務節(jié)點所述失效的服務節(jié)點。
本申請實施例還公開了一種分布式系統(tǒng)中節(jié)點的處理裝置,所述節(jié)點包括服務節(jié)點和中心節(jié)點,所述的裝置包括:
存活狀態(tài)信息獲取模塊,用于獲取所述服務節(jié)點的存活狀態(tài)信息;
當前系統(tǒng)信息獲取模塊,用于獲取所述中心節(jié)點的當前系統(tǒng)信息;
服務節(jié)點異常確定模塊,用于采用所述存活狀態(tài)信息和所述當前系統(tǒng)信息,確定所述服務節(jié)點是否存在異常;若所述服務節(jié)點存在異常,則調(diào)用中心狀態(tài)信息獲取模塊;
中心狀態(tài)信息獲取模塊,用于獲取所述中心節(jié)點的中心狀態(tài)信息;
異常服務節(jié)點處理模塊,用于依據(jù)所述中心狀態(tài)信息處理所述存在異常的服務節(jié)點。
優(yōu)選地,所述分布式系統(tǒng)中包括狀態(tài)信息表,所述存活狀態(tài)信息獲取模塊包括:
存活狀態(tài)信息接收子模塊,用于接收所述服務節(jié)點上傳的存活狀態(tài)信息;
第一狀態(tài)信息表更新子模塊,用于采用所述服務節(jié)點的存活狀態(tài)信息更新所述狀態(tài)信息表。
優(yōu)選地,所述存活狀態(tài)信息包括服務節(jié)點的下次更新時間,所述當前系統(tǒng)信息包括所述中心節(jié)點的當前系統(tǒng)時間,所述服務節(jié)點異常確定模塊包括:
狀態(tài)信息表遍歷子模塊,用于當達到預設(shè)時間時,遍歷所述狀態(tài)信息表中的下次更新時間;
服務節(jié)點異常確定子模塊,用于采用所述下次更新時間和所述當前系統(tǒng)時間確定所述服務節(jié)點是否存在異常。
優(yōu)選地,所述服務節(jié)點異常確定子模塊包括:
時間判斷單元,用于判斷所述下次更新時間是否小于所述當前系統(tǒng) 時間;若是,則調(diào)用第一確定單元,若否,則調(diào)用第二確定單元;
第一確定單元,用于將所述服務節(jié)點確定為存在異常;
第二確定單元,用于將所述服務節(jié)點確定為不存在異常。
優(yōu)選地,所述中心狀態(tài)信息包括網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù),所述異常服務節(jié)點處理模塊包括:
中心節(jié)點狀態(tài)確定子模塊,用于采用所述網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù)確定所述中心節(jié)點是否負荷過重;若是,則調(diào)用第二狀態(tài)信息表更新子模塊;
第二狀態(tài)信息表更新子模塊,用于更新所述狀態(tài)信息表中所述存在異常的服務節(jié)點的存活狀態(tài)信息。
優(yōu)選地,所述網(wǎng)絡繁忙情況數(shù)據(jù)包括網(wǎng)絡吞吐量和網(wǎng)絡丟包率,所述系統(tǒng)資源使用情況數(shù)據(jù)包括系統(tǒng)的平均負荷,所述中心節(jié)點狀態(tài)確定子模塊包括:
第一網(wǎng)絡繁忙情況判斷單元,用于判斷所述網(wǎng)絡吞吐量是否大于等于網(wǎng)絡丟帶寬;
第二網(wǎng)絡繁忙情況判斷單元,用于判斷所述網(wǎng)絡丟包率大于預設(shè)丟包率;
系統(tǒng)資源使用情況判斷單元,用于判斷所述系統(tǒng)的平均負荷是否大于預設(shè)負荷閾值;
中心節(jié)點負荷確定單元,用于在所述網(wǎng)絡吞吐量大于等于網(wǎng)絡帶寬,和/或,所述網(wǎng)絡丟包率大于預設(shè)丟包率,和/或,所述系統(tǒng)的平均負荷大于預設(shè)負荷閾值時,確定所述中心節(jié)點負荷過重。
優(yōu)選地,所述第二狀態(tài)信息表更新子模塊包括:
下次更新時間延長單元,用于延長所述狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間。
優(yōu)選地,所述第二狀態(tài)信息表更新子模塊包括:
更新請求發(fā)送單元,用于向所述服務節(jié)點發(fā)送更新請求;
下次更新時間接收單元,用于接收所述服務節(jié)點針對所述更新請求 上傳的新的存活狀態(tài)信息;所述新的存活狀態(tài)信息中包括新的下次更新時間;
下次更新時間更新單元,用于采用所述新的下次更新時間更新所述狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間。
優(yōu)選地,所述的裝置還包括:
失效服務節(jié)點確定模塊,用于在所述服務節(jié)點不存在異常時,將所述服務節(jié)點作為失效的服務節(jié)點。
優(yōu)選地,所述的裝置還包括:
失效服務節(jié)點刪除模塊,用于在所述中心節(jié)點的中刪除所述失效的服務節(jié)點;
失效服務節(jié)點通知模塊,用于通知所述分布式系統(tǒng)中其他服務節(jié)點所述失效的服務節(jié)點。
本申請實施例包括以下優(yōu)點:
本申請實施例的分布式系統(tǒng)中,中心節(jié)點根據(jù)服務節(jié)點上報的存活狀態(tài)信息以及中心節(jié)點自身的當前系統(tǒng)信息,來確認服務節(jié)點是否存在異常,當確定服務節(jié)點存在異常時,中心節(jié)點將進一步根據(jù)自身的狀態(tài)信息,對于存在異常的服務節(jié)點進行處理。應用本申請實施例,能夠綜合中心節(jié)點自身的狀態(tài),適應性處理存在異常的服務節(jié)點,減少因為中心節(jié)點自身的問題導致服務節(jié)點狀態(tài)誤判情況,降低了中心節(jié)點出錯的概率。
附圖說明
圖1是一種分布式系統(tǒng)中心節(jié)點和服務節(jié)點的工作流程示意圖;
圖2是本申請的一種分布式系統(tǒng)中節(jié)點的處理方法實施例1的步驟流程圖;
圖3是本申請的一種分布式系統(tǒng)中節(jié)點的處理方法實施例2的步驟流程圖;
圖4是本申請的一種分布式系統(tǒng)中心節(jié)點和服務節(jié)點的工作步驟流程圖;
圖5是本申請的一種分布式系統(tǒng)中心節(jié)點和服務節(jié)點的工作原理示意圖;
圖6是本申請的一種分布式系統(tǒng)中節(jié)點的處理裝置實施例的結(jié)構(gòu)框圖。
具體實施方式
為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本申請作進一步詳細的說明。
參照圖2,示出了本申請的一種分布式系統(tǒng)中節(jié)點的處理方法實施例1的步驟流程圖,所述節(jié)點可以包括服務節(jié)點和中心節(jié)點,所述的方法具體可以包括如下步驟:
步驟101,獲取所述服務節(jié)點的存活狀態(tài)信息;
在具體實現(xiàn)中,服務節(jié)點是指分布式系統(tǒng)中具有存儲功能或者業(yè)務處理功能的節(jié)點,通常為服務器等設(shè)備,中心節(jié)點則是指分布式系統(tǒng)中具有統(tǒng)籌調(diào)配服務節(jié)點功能的節(jié)點,通常為控制器等設(shè)備。需要說明的是,本申請實施例除了適用于分布式系統(tǒng)外,也適用于存在有節(jié)點能夠?qū)τ谄渌?jié)點進行管控的系統(tǒng),本申請實施例對此并不加以限制。
在本申請的一種優(yōu)選實施例中,所述分布式系統(tǒng)中可以包括狀態(tài)信息表,所述步驟101可以包括如下子步驟:
子步驟s11,接收所述服務節(jié)點上傳的存活狀態(tài)信息;
子步驟s12,采用所述服務節(jié)點的存活狀態(tài)信息更新所述狀態(tài)信息表。
在具體實現(xiàn)中,服務節(jié)點由中心節(jié)點統(tǒng)籌調(diào)配,故中心節(jié)點需要知道服務節(jié)點是否正常工作??梢岳斫?,服務節(jié)點作為具有存儲、業(yè)務等功能的設(shè)備需要執(zhí)行很多任務,而在執(zhí)行任務的過程中可能由于任務過多、剩余內(nèi)存過小等原因出現(xiàn)任務重復執(zhí)行,系統(tǒng)故障等現(xiàn)象,因此服務節(jié)點需要上報存活狀態(tài)信息,以告知中心節(jié)點是否存在異?;蛘呤В行墓?jié)點則將根據(jù)服務節(jié)點是否存在異?;蛘呤磉M行相應的處理。
在本申請的一種示例中,中心節(jié)點處存儲有狀態(tài)信息表,該表用于存儲能夠反映服務節(jié)點存活狀態(tài)的存活狀態(tài)信息。服務節(jié)點會定期上報其存活狀態(tài)信息,中心節(jié)點則將存活狀態(tài)信息保存到狀態(tài)信息表,并據(jù)此對于該服務節(jié)點的節(jié)點狀態(tài)進行更新。當然,存活狀態(tài)信息也可以由中心節(jié)點在空閑時發(fā)送請求至服務節(jié)點,以要求其上報其存活狀態(tài)信息,本申請實施例對此不加以限制。
步驟102,獲取所述中心節(jié)點的當前系統(tǒng)信息;
步驟103,采用所述存活狀態(tài)信息和所述當前系統(tǒng)信息,確定所述服務節(jié)點是否存在異常;若所述服務節(jié)點存在異常,則執(zhí)行步驟104;
在本申請的一種優(yōu)選實施例中,所述存活狀態(tài)信息可以包括服務節(jié)點的下次更新時間,所述當前系統(tǒng)信息可以包括所述中心節(jié)點的當前系統(tǒng)時間,所述步驟103可以包括如下子步驟:
子步驟s21,當達到預設(shè)時間時,遍歷所述狀態(tài)信息表中的下次更新時間;
子步驟s22,采用所述下次更新時間和所述當前系統(tǒng)時間確定所述服務節(jié)點是否存在異常。
在本申請的一種示例中,狀態(tài)信息表中存儲有服務節(jié)點的下次更新時間,下次更新時間是服務節(jié)點根據(jù)自身任務調(diào)度情況,上報給中心節(jié)點,其下次進行存活狀態(tài)更新的時間。例如,服務節(jié)點根據(jù)自身任務調(diào)度情況,確定下次更新時間為2016.02.24,如果該服務節(jié)點無異常,應當于2016.02.24之前上報存活狀態(tài)信息至中心節(jié)點。此外,當前系統(tǒng)信息則可以包括中心節(jié)點對于服務節(jié)點進行異常判斷時的當前系統(tǒng)時間,例如,當前系統(tǒng)時間可以為2016.02.25。
需要說明的是,上述對于下次更新時間和當前系統(tǒng)時間僅僅是作為舉例,在具體應用中,下次更新時間和當前系統(tǒng)時間的時間單位可以精確度時分秒,或者粗略到月年,本申請實施例對此并不加以限制。
當達到預設(shè)時間時,開始檢測服務節(jié)點是否存在異常。具體來說,中心節(jié)點開始獲取其當前系統(tǒng)時間,遍歷狀態(tài)信息表中的下次更新時間 并與當前系統(tǒng)時間一一進行比對,以此確定服務節(jié)點是否存在異常。其中,遍歷狀態(tài)信息表的周期可以設(shè)定為固定的周期,例如:30秒,1分鐘,10分鐘,或者20分鐘等等,也可由業(yè)務需求來決定遍歷的時間。
在本申請的一種優(yōu)選實施例中,所述子步驟s22可以包括如下子步驟:
子步驟s22-11,判斷所述下次更新時間是否小于所述當前系統(tǒng)時間;若是,則執(zhí)行子步驟s22-12,若否,則執(zhí)行子步驟s22-13;
子步驟s22-12,將所述服務節(jié)點確定為存在異常;
子步驟s22-13,將所述服務節(jié)點確定為不存在異常。
服務節(jié)點是否存在異常,可通過判斷服務節(jié)點的下次更新時間是否小于中心節(jié)點的當前系統(tǒng)時間,可以理解,下次更新時間是服務節(jié)點下一次上報存活狀態(tài)信息的時間,因此,如果下次更新時間小于當前系統(tǒng)時間,則說明該服務節(jié)點已經(jīng)超過應當上報的時間,則可以確定為存在異常,如果下次更新時間大于或等于當前系統(tǒng)時間,則說明該服務節(jié)點尚未超過應當上報的時間,則可以確定為不存在異常。
步驟104,獲取所述中心節(jié)點的中心狀態(tài)信息;
步驟105,依據(jù)所述中心狀態(tài)信息處理所述存在異常的服務節(jié)點。
本申請實施例在確定存在異常的服務節(jié)點時,考慮到中心節(jié)點自身的狀態(tài)也可能會影響到服務節(jié)點異常的判斷,因此,還將結(jié)合中心節(jié)點自身的中心狀態(tài)信息,以此來進一步處理存在異常的服務節(jié)點。
本申請實施例的分布式系統(tǒng)中,中心節(jié)點根據(jù)服務節(jié)點上報的存活狀態(tài)信息以及中心節(jié)點自身的當前系統(tǒng)信息,來確認服務節(jié)點是否存在異常,當確定服務節(jié)點存在異常時,中心節(jié)點將進一步根據(jù)自身的中心狀態(tài)信息,對于存在異常的服務節(jié)點進行處理。
應用本申請實施例,能夠綜合中心節(jié)點自身的狀態(tài),適應性處理存在異常的服務節(jié)點,減少因為中心節(jié)點自身的問題導致服務節(jié)點狀態(tài)誤判情況,降低了中心節(jié)點出錯的概率。
參照圖3,示出了本申請的一種分布式系統(tǒng)中節(jié)點的處理方法實施例2的步驟流程圖,所述節(jié)點可以包括服務節(jié)點和中心節(jié)點,所述的方法具體可以包括如下步驟:
步驟201,獲取所述服務節(jié)點的存活狀態(tài)信息;
步驟202,獲取所述中心節(jié)點的當前系統(tǒng)信息;
步驟203,采用所述存活狀態(tài)信息和所述當前系統(tǒng)信息,確定所述服務節(jié)點是否存在異常;若所述服務節(jié)點存在異常,則執(zhí)行步驟204,若所述服務節(jié)點不存在異常,則執(zhí)行步驟207;
步驟204,獲取所述中心節(jié)點的中心狀態(tài)信息;所述中心狀態(tài)信息可以包括網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù);
步驟205,采用所述網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù)確定所述中心節(jié)點是否負荷過重;若是,則執(zhí)行步驟206;
在本申請具體應用的一種示例中,所述網(wǎng)絡繁忙情況數(shù)據(jù)可以體現(xiàn)為網(wǎng)絡吞吐量和網(wǎng)絡丟包率,所述系統(tǒng)資源使用情況數(shù)據(jù)可以體現(xiàn)為系統(tǒng)的平均負荷。
具體來說,網(wǎng)絡吞吐量簡稱為吞吐量,是指任意給定時刻通過一個網(wǎng)絡(或者某個信道、某個結(jié)點)所成功傳輸?shù)臄?shù)據(jù)量。吞吐量取決于中心節(jié)點網(wǎng)絡當前的可用帶寬,并受網(wǎng)絡帶寬的限制,吞吐量常常是在實際的網(wǎng)絡工程中進行網(wǎng)絡測試的一個重要指標,例如可用以衡量網(wǎng)絡設(shè)備的性能。網(wǎng)絡丟包率指所丟失數(shù)據(jù)量占所發(fā)送數(shù)據(jù)量的比率。丟包率與網(wǎng)絡負荷、數(shù)據(jù)長度以及數(shù)據(jù)發(fā)送頻率等相關(guān)。系統(tǒng)平均負荷(loadaverage)是指在特定時間間隔內(nèi),中心節(jié)點所運行隊列中的平均進程數(shù)。
在本申請的一種優(yōu)選實施例中,所述步驟205可以包括如下子步驟:
子步驟s31,判斷所述網(wǎng)絡吞吐量是否大于等于網(wǎng)絡帶寬;
子步驟s32,判斷所述網(wǎng)絡丟包率大于預設(shè)丟包率;
子步驟s33,判斷所述系統(tǒng)的平均負荷是否大于預設(shè)負荷閾值;若所述網(wǎng)絡吞吐量大于等于網(wǎng)絡帶寬,和/或,所述網(wǎng)絡丟包率大于預設(shè)丟包率,和/或,所述系統(tǒng)的平均負荷大于預設(shè)閾值,則執(zhí)行子步驟s34;
子步驟s34,確定所述中心節(jié)點負荷過重。
在本申請具體應用的一種示例中,計算中心節(jié)點網(wǎng)絡繁忙情況的公式為:
網(wǎng)絡吞吐量≥帶寬,或者,網(wǎng)絡丟包率>n%;
其中:n的取值范圍為:1-100。
計算中心節(jié)點系統(tǒng)資源使用情況的公式為:
系統(tǒng)資源使用情況=系統(tǒng)loadaverage(平均負荷)值>n;
其中:n為整數(shù),一般n>1。
在本申請實施例中,基于中心節(jié)點的網(wǎng)絡忙碌情況數(shù)據(jù)和系統(tǒng)資源使用情況數(shù)據(jù)進行判斷,若這這些數(shù)據(jù)中的某些或者全部達到某些臨界值,說明中心節(jié)點負荷過重,則其在先的判定為異常的服務節(jié)點不一定是失效的服務節(jié)點,那么需要延長該服務節(jié)點的下次更新時間;反之,說明中心節(jié)點負荷正常,則其在先判定為異常的服務節(jié)點是應當是無效的服務節(jié)點。這樣通過結(jié)合中心節(jié)點自身狀態(tài),可減少由于中心節(jié)點自身原因所造成對服務節(jié)點的誤判。
步驟206,更新所述狀態(tài)信息表中所述存在異常的服務節(jié)點的存活狀態(tài)信息;
在本申請的一種優(yōu)選實施例中,所述步驟206可以包括如下子步驟:
子步驟s41,延長所述狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間。
在本申請實施例中,中心節(jié)點結(jié)合自身的節(jié)點網(wǎng)絡繁忙情況和系統(tǒng)資源使用情況來進行服務節(jié)點的失效判定,如果網(wǎng)絡非常繁忙或者系統(tǒng)資源繁忙,則此時中心節(jié)點對于服務節(jié)點的失效判定可信度較低,例如有可能由于資源繁忙而對于存活狀態(tài)信息表中服務節(jié)點存活狀態(tài)更新失效,此時可對于中心節(jié)點的判斷不予采納,判定中心節(jié)點處理失敗,同時相應延長狀態(tài)信息表里的在先判定為異常服務節(jié)點的下次更新時間。
在本申請的一種優(yōu)選實施例中,所述步驟206可以包括如下子步驟:
子步驟s51,向所述服務節(jié)點發(fā)送更新請求;
子步驟s52,接收所述服務節(jié)點針對所述更新請求上傳的新的存活狀態(tài)信息;所述新的存活狀態(tài)信息中包括新的下次更新時間;
子步驟s53,采用所述新的下次更新時間更新所述狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間。
中心節(jié)點可根據(jù)自身狀態(tài)來自動延長服務節(jié)點的下次更新時間,或者,主動向服務節(jié)點發(fā)起狀態(tài)更新的請求來延長服務節(jié)點的下次更新時間,減少因為中心節(jié)點自身問題導致服務節(jié)點狀態(tài)誤判情況出現(xiàn)。
本申請的一種示例中,針對在先判定為存在異常的服務節(jié)點的下次更新時間,可以由中心節(jié)點向該服務節(jié)點發(fā)送更新請求,服務節(jié)點接收到請求后,根據(jù)自身任務調(diào)度情況,重新上報新的下次更新時間,中心節(jié)點則采用該新的下次更新時間對于狀態(tài)信息表進行更新,以延長服務節(jié)點的下次更新時間。
步驟207,將所述服務節(jié)點作為失效的服務節(jié)點。
在本申請的一種優(yōu)選實施例中,所述將服務節(jié)點作為失效的服務節(jié)點的步驟之后,還包括:
在所述中心節(jié)點的中刪除所述失效的服務節(jié)點;
通知所述分布式系統(tǒng)中其他服務節(jié)點所述失效的服務節(jié)點。
在本申請實施例中,如果確定服務節(jié)點為失效,則可以將該失效的服務節(jié)點在中心節(jié)點中相關(guān)信息刪除,例如注冊表。除此之外,還可以通知分布式系統(tǒng)內(nèi)其他服務節(jié)點該失效的服務節(jié)點的相關(guān)信息,例如,該失效的服務節(jié)點的ip地址,服務節(jié)點接到通知后,可以在本地清除該失效的服務節(jié)點的相關(guān)信息。
為使本領(lǐng)域技術(shù)人員更好地理解本申請實施例,以下采用具體的實例對于分布式系統(tǒng)中節(jié)點狀態(tài)的監(jiān)控處理方式進行說明,參照圖4所示的本申請的一種分布式系統(tǒng)中心節(jié)點和服務節(jié)點的工作流程示意圖,以及,圖5所示的一種分布式系統(tǒng)中心節(jié)點和服務節(jié)點的工作原理示意圖,具體的步驟如下所示:
s1、程序啟動;
s2、服務節(jié)點將存活狀態(tài)信息上報到中心節(jié)點;
s3、中心節(jié)點根據(jù)服務節(jié)點上報的存活狀態(tài)信息對于狀態(tài)信息表進行更新,更新內(nèi)容包括有:最新更新時間和下次更新時間;
s4、中心節(jié)點掃描存活狀態(tài)信息表;
s5、判斷某個服務節(jié)點的下次更新時間是否小于當前系統(tǒng)時間,如果是,執(zhí)行s6,如果否,則返回s4,繼續(xù)掃描存活狀態(tài)信息表;
s6、中心節(jié)點判斷自身的節(jié)點網(wǎng)絡繁忙情況和系統(tǒng)資源使用情況,如果網(wǎng)絡非常繁忙或者系統(tǒng)資源繁忙,延長存活狀態(tài)信息表中服務節(jié)點的下次更新時間;
s7、啟動服務節(jié)點的失效流程處理。
在本申請實施例中,中心節(jié)點結(jié)合自身狀態(tài),對于服務節(jié)點進行失效判定,能夠減少因中心節(jié)點的網(wǎng)絡擁堵或者系統(tǒng)資源問題導致沒有更新節(jié)點狀態(tài)信息表所導致的誤判情況出現(xiàn),降低了中心節(jié)點出錯的概率。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應該知悉,本申請實施例并不受所描述的動作順序的限制,因為依據(jù)本申請實施例,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請實施例所必須的。
參照圖6,示出了本申請的一種分布式系統(tǒng)中節(jié)點的處理裝置實施例的結(jié)構(gòu)框圖,所述節(jié)點包括服務節(jié)點和中心節(jié)點,所述的裝置具體可以包括如下模塊:
存活狀態(tài)信息獲取模塊301,用于獲取所述服務節(jié)點的存活狀態(tài)信息;
在本申請的一種優(yōu)選實施例中,所述分布式系統(tǒng)中包括狀態(tài)信息表,所述存活狀態(tài)信息獲取模塊301可以包括如下子模塊:
存活狀態(tài)信息接收子模塊,用于接收所述服務節(jié)點上傳的存活狀態(tài)信息;
第一狀態(tài)信息表更新子模塊,用于采用所述服務節(jié)點的存活狀態(tài)信息更新所述狀態(tài)信息表。
當前系統(tǒng)信息獲取模塊302,用于獲取所述中心節(jié)點的當前系統(tǒng)信息;
服務節(jié)點異常確定模塊303,用于采用所述存活狀態(tài)信息和所述當前系統(tǒng)信息,確定所述服務節(jié)點是否存在異常;若所述服務節(jié)點存在異常,則調(diào)用中心狀態(tài)信息獲取模塊;
在本申請的一種優(yōu)選實施例中,所述存活狀態(tài)信息包括服務節(jié)點的下次更新時間,所述當前系統(tǒng)信息包括所述中心節(jié)點的當前系統(tǒng)時間,所述服務節(jié)點異常確定模塊303可以包括如下子模塊:
狀態(tài)信息表遍歷子模塊,用于當達到預設(shè)時間時,遍歷所述狀態(tài)信息表中的下次更新時間;
服務節(jié)點異常確定子模塊,用于采用所述下次更新時間和所述當前系統(tǒng)時間確定所述服務節(jié)點是否存在異常。
在本申請的一種優(yōu)選實施例中,所述服務節(jié)點異常確定子模塊包括:
時間判斷單元,用于判斷所述下次更新時間是否小于所述當前系統(tǒng)時間;若是,則調(diào)用第一確定單元,若否,則調(diào)用第二確定單元;
第一確定單元,用于將所述服務節(jié)點確定為存在異常;
第二確定單元,用于將所述服務節(jié)點確定為不存在異常。
中心狀態(tài)信息獲取模塊304,用于獲取所述中心節(jié)點的中心狀態(tài)信息;
異常服務節(jié)點處理模塊305,用于依據(jù)所述中心狀態(tài)信息處理所述存在異常的服務節(jié)點。
在本申請的一種優(yōu)選實施例中,所述中心狀態(tài)信息包括網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù),所述異常服務節(jié)點處理模塊305包括:
中心節(jié)點狀態(tài)確定子模塊,用于采用所述網(wǎng)絡繁忙情況數(shù)據(jù)和/或系統(tǒng)資源使用情況數(shù)據(jù)確定所述中心節(jié)點是否負荷過重;若是,則調(diào)用第二狀態(tài)信息表更新子模塊;
第二狀態(tài)信息表更新子模塊,用于更新所述狀態(tài)信息表中所述存在異常的服務節(jié)點的存活狀態(tài)信息。
在本申請的一種優(yōu)選實施例中,所述網(wǎng)絡繁忙情況數(shù)據(jù)包括網(wǎng)絡吞吐量,所述系統(tǒng)資源使用情況數(shù)據(jù)包括系統(tǒng)的平均負荷,所述中心節(jié)點狀態(tài)確定子模塊包括:
第一網(wǎng)絡繁忙情況判斷單元,用于判斷所述網(wǎng)絡吞吐量是否大于等于網(wǎng)絡帶寬;
第二網(wǎng)絡繁忙情況判斷單元,用于判斷所述網(wǎng)絡丟包率大于預設(shè)丟包率;
系統(tǒng)資源使用情況判斷單元,用于判斷所述系統(tǒng)的平均負荷是否大于預設(shè)負荷閾值;
中心節(jié)點負荷確定單元,用于在所述網(wǎng)絡吞吐量大于等于網(wǎng)絡帶寬,和/或,所述網(wǎng)絡丟包率大于預設(shè)丟包率,和/或,所述系統(tǒng)的平均負荷大于預設(shè)負荷閾值時,確定所述中心節(jié)點負荷過重。
在本申請的一種優(yōu)選實施例中,所述第二狀態(tài)信息表更新子模塊包括:
下次更新時間延長單元,用于延長所述狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間;
在本申請的另一種優(yōu)選實施例中,所述第二狀態(tài)信息表更新子模塊包括:
更新請求發(fā)送單元,用于向所述服務節(jié)點發(fā)送更新請求;
下次更新時間接收單元,用于接收所述服務節(jié)點針對所述更新請求上傳的新的存活狀態(tài)信息;所述新的存活狀態(tài)信息中包括新的下次更新時間;
下次更新時間更新單元,用于采用所述新的下次更新時間更新所述 狀態(tài)信息表中所述存在異常的服務節(jié)點的下次更新時間。
在本申請的一種優(yōu)選實施例中,所述的裝置還包括:
失效服務節(jié)點確定模塊,用于在所述服務節(jié)點不存在異常時,將所述服務節(jié)點作為失效的服務節(jié)點。
在本申請的一種優(yōu)選實施例中,所述的裝置還包括:
失效服務節(jié)點刪除模塊,用于在所述中心節(jié)點的中刪除所述失效的服務節(jié)點;
失效服務節(jié)點通知模塊,用于通知所述分布式系統(tǒng)中其他服務節(jié)點所述失效的服務節(jié)點。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領(lǐng)域內(nèi)的技術(shù)人員應明白,本申請實施例的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本申請實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
在一個典型的配置中,所述計算機設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡接口和內(nèi)存。內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但 不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
本申請實施例是參照根據(jù)本申請實施例的方法、終端設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計算機或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請實施例的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。 所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對本申請所提供的一種分布式系統(tǒng)中節(jié)點的處理方法和一種分布式系統(tǒng)中節(jié)點的處理裝置,進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本申請的限制。