本發(fā)明屬于數(shù)據(jù)采集技術(shù)領(lǐng)域,具體涉及一種大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)及方法。
背景技術(shù):
隨著工業(yè)企業(yè)的發(fā)展、生產(chǎn)規(guī)模擴(kuò)大以及數(shù)據(jù)采集量的大大增加,企業(yè)對數(shù)據(jù)采集可靠性的要求越來越高,保證采集可靠性的難度也越來越大。
目前在大規(guī)模分布式數(shù)據(jù)采集方面的專利主要是“CN105527948A(一種基于工業(yè)過程的大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)及方法)”,該專利利用一個數(shù)據(jù)采集調(diào)度模塊為多個數(shù)據(jù)采集客戶端分配采集任務(wù),當(dāng)采集客戶端出現(xiàn)故障時(shí),下一個采集周期,利用采集調(diào)度模塊進(jìn)行重調(diào)度的方式保證故障后下一周期及以后時(shí)間采集的可靠性。該專利雖然在一定程度上能夠提高采集的可靠性,但在采集過程中仍然存在一定的局限性:
1.該專利中,采集調(diào)度模塊根據(jù)現(xiàn)場控制站的運(yùn)行狀態(tài)信息對采集客戶端分配采集任務(wù),所執(zhí)行的采集只能是以現(xiàn)場控制站為單位進(jìn)行,而無法以數(shù)據(jù)項(xiàng)為單位進(jìn)行采集,且所有采集任務(wù)不區(qū)分優(yōu)先級,采集靈活性不夠高。對于需要采集所有現(xiàn)場控制站中的某一項(xiàng)或某幾項(xiàng)數(shù)據(jù)進(jìn)行分析的場合,或者各個采集任務(wù)有重要程度高低之分的場合,該專利無法滿足要求。
2.該專利所述系統(tǒng)缺乏獨(dú)立的協(xié)同管理模塊來對分布式系統(tǒng)中各節(jié)點(diǎn)進(jìn)行相應(yīng)的管理和自動的負(fù)載均衡,當(dāng)需要多個采集調(diào)度模塊時(shí),系統(tǒng)難以實(shí)現(xiàn)動態(tài)的擴(kuò)展,系統(tǒng)靈活性不夠高。
3.該專利在采集客戶端故障時(shí),僅能保證下一采集周期正常采集,對于故障當(dāng)前采集周期,沒有提供很好的容災(zāi)處理機(jī)制來保證采集可靠性和容錯性,因此,故障一旦發(fā)生,故障發(fā)生時(shí)刻的數(shù)據(jù)容易丟失,對于采集可靠性要求高的生產(chǎn)場合,這種丟失同樣會對企業(yè)造成一定的經(jīng)濟(jì)損失。此外,該專利僅采用一個數(shù)據(jù)采集調(diào)度模塊對采集客戶端分配采集任務(wù),沒有進(jìn)行采集調(diào)度模塊的容災(zāi)處理,且所有采集任務(wù)的分配以及對采集客戶端的管理功能均集中于一個數(shù)據(jù)采集調(diào)度模塊,功能較為集中,一旦該采集調(diào)度模塊故障,整個系統(tǒng)將無法正常工作。
4.該專利中,采集調(diào)度模塊直接和所有的采集客戶端進(jìn)行交互,將分配的采集任務(wù)直接發(fā)送給所有的采集客戶端。當(dāng)采用多個采集調(diào)度模塊時(shí),采集調(diào)度模塊和采集客戶端耦合性較大,二者之間通信冗雜,當(dāng)多個采集調(diào)度模塊給同一個采集客戶端發(fā)送任務(wù)時(shí),每個采集調(diào)度模塊的任務(wù)到達(dá)采集客戶端的時(shí)間不同,采集客戶端等待任務(wù)分配的時(shí)間不確定,從而導(dǎo)致采集客戶端等待時(shí)間較長,系統(tǒng)效率降低。
綜上所述,現(xiàn)有專利在數(shù)據(jù)采集功能、靈活性、高效性和保證數(shù)據(jù)采集可靠性方面存在明顯不足,難以滿足目前制造企業(yè)向智能化轉(zhuǎn)型過程中對實(shí)時(shí)數(shù)據(jù)采集的需求。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)及方法,以達(dá)到提高系統(tǒng)的靈活性和可擴(kuò)展性、提高管理節(jié)點(diǎn)和任務(wù)倉庫的可靠性、提高任務(wù)分配節(jié)點(diǎn)的容錯性從而保證采集任務(wù)分配的高可靠性、提高采集節(jié)點(diǎn)的容錯性從而保證當(dāng)前采樣周期的數(shù)據(jù)采集的容錯性和高可靠性且保證采集任務(wù)執(zhí)行的長期可靠性的目的;
一種大規(guī)模分布式數(shù)據(jù)采集系統(tǒng),該系統(tǒng)包括任務(wù)分配節(jié)點(diǎn)模塊、管理節(jié)點(diǎn)模塊、任務(wù)倉庫模塊和采集節(jié)點(diǎn)模塊;
所述的任務(wù)分配節(jié)點(diǎn)模塊包括多個任務(wù)分配節(jié)點(diǎn);所述的管理節(jié)點(diǎn)模塊包括管理節(jié)點(diǎn);所述的任務(wù)倉庫模塊包括任務(wù)倉庫;所述的采集節(jié)點(diǎn)模塊包括多個采集節(jié)點(diǎn);其中,
任務(wù)分配節(jié)點(diǎn):用于設(shè)定所需采集的任務(wù),從管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,從而獲取每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,將用戶設(shè)定的采集任務(wù)在各個在線任務(wù)分配節(jié)點(diǎn)上逐條進(jìn)行循環(huán)均分,并根據(jù)所獲取采集任務(wù)的優(yōu)先級以及各個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,依次將采集任務(wù)分配至在線且處于正常運(yùn)行狀態(tài)的采集節(jié)點(diǎn),將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn),將分配結(jié)果發(fā)送至任務(wù)倉庫中;同時(shí)實(shí)時(shí)對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控;
管理節(jié)點(diǎn):用于提供分布式協(xié)同服務(wù),接收并管理采集節(jié)點(diǎn)和任務(wù)分配節(jié)點(diǎn)的注冊信息,按照注冊順序?qū)Σ杉?jié)點(diǎn)進(jìn)行編號,按照一定的頻率與采集節(jié)點(diǎn)進(jìn)行通信以獲取在線采集節(jié)點(diǎn);按照注冊順序?qū)θ蝿?wù)分配節(jié)點(diǎn)進(jìn)行編號,按照一定的頻率與任務(wù)分配節(jié)點(diǎn)進(jìn)行通信以獲取在線任務(wù)分配節(jié)點(diǎn);
任務(wù)倉庫:用于接收任務(wù)分配節(jié)點(diǎn)發(fā)送的采集任務(wù);
采集節(jié)點(diǎn):用于從管理節(jié)點(diǎn)獲取其他在線采集節(jié)點(diǎn)列表,從任務(wù)倉庫中獲取各自所需采集的任務(wù),并按照采集任務(wù)的優(yōu)先級順序?qū)ΜF(xiàn)場控制站的數(shù)據(jù)進(jìn)行采集,將采集結(jié)果存入數(shù)據(jù)庫中。
所述的任務(wù)分配節(jié)點(diǎn),其將所需采集的任務(wù)列表同步至其他在線任務(wù)分配節(jié)點(diǎn)中。
所述的任務(wù)分配節(jié)點(diǎn)包括任務(wù)設(shè)定模塊、任務(wù)分配模塊和任務(wù)監(jiān)控模塊,其中,
任務(wù)設(shè)定模塊:用于從管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線任務(wù)分配節(jié)點(diǎn)列表,根據(jù)實(shí)際需求設(shè)定所需采集的任務(wù),并將任務(wù)列表中的采集任務(wù)逐條循環(huán)均分給所有在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊;
任務(wù)分配模塊:用于從管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,從而獲取每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,根據(jù)所獲取采集任務(wù)的優(yōu)先級以及各在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,依次將采集任務(wù)分配至在線且處于正常運(yùn)行狀態(tài)的采集節(jié)點(diǎn),并將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn),將分配結(jié)果發(fā)送到任務(wù)倉庫;
任務(wù)監(jiān)控模塊:用于實(shí)時(shí)對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控。
所述的管理節(jié)點(diǎn)模塊,還包括管理切換器,所述的管理節(jié)點(diǎn)采用冗余配置方式,包括主管理節(jié)點(diǎn)和備管理節(jié)點(diǎn);
管理切換器:用于捕捉主管理節(jié)點(diǎn)的故障信息,實(shí)現(xiàn)主管理節(jié)點(diǎn)與備管理節(jié)點(diǎn)之間的切換和主管理節(jié)點(diǎn)與備管理節(jié)點(diǎn)之間的數(shù)據(jù)同步。
所述的任務(wù)倉庫模塊,還包括任務(wù)切換器,所述的任務(wù)倉庫采用冗余配置方式,包括主任務(wù)倉庫和備任務(wù)倉庫;
任務(wù)切換器:用于捕捉主任務(wù)倉庫的故障信息,實(shí)現(xiàn)主任務(wù)倉庫與備任務(wù)倉庫之間的切換和主任務(wù)倉庫與備任務(wù)倉庫之間的數(shù)據(jù)同步。
采用大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)進(jìn)行的數(shù)據(jù)采集方法,包括以下步驟:
步驟1、對系統(tǒng)進(jìn)行初始化設(shè)置;
步驟2、根據(jù)實(shí)際需要配置所需的現(xiàn)場控制站的數(shù)量和現(xiàn)場設(shè)備,并依次開啟所配置的現(xiàn)場設(shè)備和現(xiàn)場控制站;
步驟3、開啟管理節(jié)點(diǎn)和任務(wù)倉庫,并依次開啟每個采集節(jié)點(diǎn)和任務(wù)分配節(jié)點(diǎn);
步驟4、每個采集節(jié)點(diǎn)開啟后自動向管理節(jié)點(diǎn)發(fā)送注冊信息,管理節(jié)點(diǎn)按照注冊順序?qū)Σ杉?jié)點(diǎn)進(jìn)行編號,按照一定的頻率與采集節(jié)點(diǎn)進(jìn)行通信以獲取在線采集節(jié)點(diǎn);
步驟5、每個任務(wù)分配節(jié)點(diǎn)開啟后自動向管理節(jié)點(diǎn)發(fā)送注冊信息,管理節(jié)點(diǎn)按照注冊順序?qū)θ蝿?wù)分配節(jié)點(diǎn)進(jìn)行編號,按照一定的頻率與任務(wù)分配節(jié)點(diǎn)進(jìn)行通信以獲取在線任務(wù)分配節(jié)點(diǎn);
步驟6:各在線任務(wù)分配節(jié)點(diǎn)的任務(wù)設(shè)定模塊分別從管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的任務(wù)分配節(jié)點(diǎn)列表,任務(wù)分配模塊分別從管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,各在線采集節(jié)點(diǎn)分別從管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的采集節(jié)點(diǎn)列表;
步驟7、根據(jù)實(shí)際需求,采用任意一個在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)設(shè)定模塊設(shè)定所需采集的任務(wù),并將任務(wù)列表中的采集任務(wù)平均分配到各個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊;
步驟8、各在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)分配模塊獲取各在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,根據(jù)其所獲取采集任務(wù)的優(yōu)先級,以及各在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,依次將采集任務(wù)分配至在線且處于正常運(yùn)行狀態(tài)的采集節(jié)點(diǎn),并將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn),將分配結(jié)果發(fā)送至任務(wù)倉庫中;同時(shí)各在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)監(jiān)控模塊實(shí)時(shí)對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控;
步驟9、各在線采集節(jié)點(diǎn)分別從任務(wù)倉庫中獲取各自所需采集的任務(wù);
步驟10、各在線采集節(jié)點(diǎn)按照采集任務(wù)的優(yōu)先級順序?qū)ΜF(xiàn)場控制站的數(shù)據(jù)進(jìn)行采集,并將采集結(jié)果存入數(shù)據(jù)庫中。
步驟1所述的對系統(tǒng)進(jìn)行初始化設(shè)置;具體為:設(shè)置主管理節(jié)點(diǎn)、備管理節(jié)點(diǎn)、各任務(wù)分配節(jié)點(diǎn)、主任務(wù)倉庫、備任務(wù)倉庫和各采集節(jié)點(diǎn)的IP地址和端口號,并設(shè)置時(shí)鐘同步和各采集節(jié)點(diǎn)的運(yùn)行狀態(tài)閾值。
步驟7所述的根據(jù)實(shí)際需求,采用任意一個在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)設(shè)定模塊設(shè)定所需采集的任務(wù),并將任務(wù)列表中的采集任務(wù)平均分配給各個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊;具體步驟如下:
步驟7-1、根據(jù)實(shí)際需求,采用任意一個在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)設(shè)定模塊設(shè)定所需采集的任務(wù);
步驟7-2、將任務(wù)列表中的采集任務(wù)逐條循環(huán)均分給各個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊,直到任務(wù)列表中所有的采集任務(wù)都分配給任務(wù)分配模塊為止。
步驟8所述的各在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)分配模塊獲取各在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,根據(jù)其所獲取采集任務(wù)的優(yōu)先級,以及各在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,依次將采集任務(wù)分配至在線且處于正常運(yùn)行狀態(tài)的采集節(jié)點(diǎn),并將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn),將分配結(jié)果發(fā)送至任務(wù)倉庫中;同時(shí)各在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)監(jiān)控模塊實(shí)時(shí)對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控;具體步驟如下:
步驟8-1、每個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊分別對其獲取到的采集任務(wù)按照優(yōu)先級進(jìn)行排隊(duì),并根據(jù)在線采集節(jié)點(diǎn)列表,輪詢每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值;
步驟8-2、通過比較每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,分別判斷各在線采集節(jié)點(diǎn)是正常運(yùn)行狀態(tài)還是過載運(yùn)行狀態(tài),若在線采集節(jié)點(diǎn)處于正常運(yùn)行狀態(tài),則根據(jù)該在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,按照任務(wù)優(yōu)先級順序?qū)υ撛诰€采集節(jié)點(diǎn)分配采集任務(wù);若在線采集節(jié)點(diǎn)處于過載運(yùn)行狀態(tài),則不對該在線采集節(jié)點(diǎn)分配采集任務(wù);
步驟8-3、將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn);
步驟8-4、各在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊分別將其分配結(jié)果發(fā)送至任務(wù)倉庫中;
步驟8-5、每個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)監(jiān)控模塊分別對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控;
步驟8-6、若存在任務(wù)分配節(jié)點(diǎn)發(fā)生故障,則上述任務(wù)分配節(jié)點(diǎn)為離線狀態(tài),其他在線的任務(wù)分配節(jié)點(diǎn)從管理節(jié)點(diǎn)實(shí)時(shí)獲取更新后的在線任務(wù)分配節(jié)點(diǎn)列表,任務(wù)設(shè)定模塊將任務(wù)列表中的采集任務(wù)逐條循環(huán)均分給各個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊,直到任務(wù)列表中所有的采集任務(wù)都分配給任務(wù)分配模塊為止,返回執(zhí)行步驟8-1。
步驟10所述的各在線采集節(jié)點(diǎn)按照采集任務(wù)的優(yōu)先級順序?qū)ΜF(xiàn)場控制站的數(shù)據(jù)進(jìn)行采集,并將采集結(jié)果存入數(shù)據(jù)庫中;具體為:
步驟10-1、各在線采集節(jié)點(diǎn)按照采集任務(wù)的優(yōu)先級順序?qū)ΜF(xiàn)場控制站的數(shù)據(jù)進(jìn)行采集,正常情況下,與目標(biāo)采集節(jié)點(diǎn)相鄰的下兩個編號在線采集節(jié)點(diǎn)所備份的采集任務(wù)僅作本地緩存,不存入數(shù)據(jù)庫中;
步驟10-2、當(dāng)存在采集節(jié)點(diǎn)故障時(shí),該采集節(jié)點(diǎn)將處于離線狀態(tài),在當(dāng)前采樣周期內(nèi),相鄰的第一個編號在線采集節(jié)點(diǎn)將備份采集任務(wù)的采集結(jié)果從本地緩存區(qū)存入數(shù)據(jù)庫中;若此時(shí)相鄰的第一個編號在線采集節(jié)點(diǎn)也發(fā)生故障,則相鄰的第二個編號在線采集節(jié)點(diǎn)將備份采集任務(wù)的采集結(jié)果從本地緩存區(qū)存入數(shù)據(jù)庫中;
步驟10-3、當(dāng)開始下一個采樣周期時(shí),各在線任務(wù)分配節(jié)點(diǎn)通過管理節(jié)點(diǎn)獲取到更新后的在線采集節(jié)點(diǎn)列表;將采集任務(wù)重新按照優(yōu)先級順序分配給在線的采集節(jié)點(diǎn),相應(yīng)的在線采集節(jié)點(diǎn)執(zhí)行其獲取的采集任務(wù)并將執(zhí)行結(jié)果存入數(shù)據(jù)庫。
本發(fā)明優(yōu)點(diǎn):
本發(fā)明提出一種大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)及方法,用戶可以隨時(shí)根據(jù)需求創(chuàng)建、修改和刪除采集任務(wù),且可以根據(jù)實(shí)際需求對不同采集任務(wù)設(shè)置不同的優(yōu)先級和采樣周期;由任務(wù)分配節(jié)點(diǎn)對采集任務(wù)進(jìn)行分配和調(diào)度,采集節(jié)點(diǎn)所采集的數(shù)據(jù)不再固定,而具有一定的靈活性;加入管理節(jié)點(diǎn)作為獨(dú)立的協(xié)同管理模塊,使得任務(wù)分配節(jié)點(diǎn)和采集節(jié)點(diǎn)均可以動態(tài)地增加和刪除,大大提高了系統(tǒng)的靈活性和可擴(kuò)展性;當(dāng)某一個或某幾個任務(wù)分配節(jié)點(diǎn)故障時(shí),其他在線的任務(wù)分配節(jié)點(diǎn)能夠從管理節(jié)點(diǎn)實(shí)時(shí)獲取更新后的在線任務(wù)分配節(jié)點(diǎn)列表,從而將任務(wù)設(shè)定模塊的任務(wù)列表中的采集任務(wù)重新循環(huán)均分給當(dāng)前在線的任務(wù)分配節(jié)點(diǎn),提高了任務(wù)分配節(jié)點(diǎn)的容錯性,從而保證了采集任務(wù)分配的高可靠性。當(dāng)某一個或某幾個采集節(jié)點(diǎn)故障時(shí),由于存在采集任務(wù)的備份,備采集節(jié)點(diǎn)通過管理節(jié)點(diǎn)檢測到主采集節(jié)點(diǎn)故障,將主采集節(jié)點(diǎn)對應(yīng)采集任務(wù)的采集結(jié)果存入數(shù)據(jù)庫,保證了當(dāng)前采樣周期的數(shù)據(jù)采集的容錯性和可靠性;從下一個采集周期開始,任務(wù)分配節(jié)點(diǎn)通過管理節(jié)點(diǎn)獲取到更新后的在線采集節(jié)點(diǎn)列表,將采集任務(wù)重新按照優(yōu)先級順序分配給在線的采集節(jié)點(diǎn),并調(diào)用相應(yīng)的在線采集節(jié)點(diǎn)執(zhí)行采集任務(wù),從而保證了采集任務(wù)執(zhí)行的長期可靠性;管理節(jié)點(diǎn)和和任務(wù)倉庫采用冗余配置方式,提高管理節(jié)點(diǎn)和任務(wù)倉庫的可靠性。
附圖說明
圖1為本發(fā)明一種實(shí)施例的大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本發(fā)明一種實(shí)施例的管理節(jié)點(diǎn)模塊結(jié)構(gòu)示意圖;
圖3為本發(fā)明一種實(shí)施例的任務(wù)倉庫模塊結(jié)構(gòu)示意圖;
圖4為本發(fā)明一種實(shí)施例的任務(wù)分配節(jié)點(diǎn)結(jié)構(gòu)示意圖;
圖5為本發(fā)明一種實(shí)施例的大規(guī)模分布式數(shù)據(jù)采集方法流程圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明一種實(shí)施例做進(jìn)一步說明。
如圖1所示,大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)包括:任務(wù)分配節(jié)點(diǎn)模塊、管理節(jié)點(diǎn)模塊、任務(wù)倉庫模塊和采集節(jié)點(diǎn)模塊;本發(fā)明實(shí)施例中,所述的任務(wù)分配節(jié)點(diǎn)模塊包括3個任務(wù)分配節(jié)點(diǎn);所述的管理節(jié)點(diǎn)模塊包括管理節(jié)點(diǎn);所述的任務(wù)倉庫模塊包括任務(wù)倉庫;所述的采集節(jié)點(diǎn)模塊包括3個采集節(jié)點(diǎn);此外,現(xiàn)場設(shè)備為9組風(fēng)力發(fā)電機(jī),用于產(chǎn)生風(fēng)機(jī)的相關(guān)數(shù)據(jù);9組風(fēng)力發(fā)電機(jī)的名稱分別為:F15、F16、F17、F18、F20、F21、F22、F23、F24;現(xiàn)場控制站為9臺Foxboro公司的PLC,用于連接9組風(fēng)機(jī);
本發(fā)明實(shí)施例中,如圖2所示,所述的管理節(jié)點(diǎn)模塊還包括管理切換器,所述的管理節(jié)點(diǎn)采用冗余配置方式,包括主管理節(jié)點(diǎn)和備管理節(jié)點(diǎn);如圖3所示,所述的任務(wù)倉庫模塊還包括任務(wù)切換器,所述的任務(wù)倉庫采用冗余配置方式,包括主任務(wù)倉庫和備任務(wù)倉庫;
本發(fā)明實(shí)施例中,采用浪潮云海服務(wù)器虛擬化系統(tǒng)V4.0工業(yè)云平臺,用于部署主管理節(jié)點(diǎn)、備管理節(jié)點(diǎn)、3個任務(wù)分配節(jié)點(diǎn)、主任務(wù)倉庫、備任務(wù)倉庫和3個采集節(jié)點(diǎn),并對其運(yùn)行情況進(jìn)行監(jiān)控,查看各節(jié)點(diǎn)的運(yùn)行狀況,修改各節(jié)點(diǎn)的在線、離線運(yùn)行狀態(tài);所述的主管理節(jié)點(diǎn)、備管理節(jié)點(diǎn)、3個任務(wù)分配節(jié)點(diǎn)、主任務(wù)倉庫、備任務(wù)倉庫均運(yùn)行于Windows764位操作系統(tǒng)且內(nèi)存大小為4G的虛擬機(jī)或者虛擬計(jì)算機(jī)上;所述的3個采集節(jié)點(diǎn)運(yùn)行于Windows764位操作系統(tǒng)且內(nèi)存大小為8G的虛擬機(jī)或者虛擬計(jì)算機(jī)上;所述的管理切換器和任務(wù)切換器基于MyEclipse 2014開發(fā)平臺采用java語言實(shí)現(xiàn)開發(fā);
本發(fā)明實(shí)施例中,3個任務(wù)分配節(jié)點(diǎn):用于設(shè)定所需采集的任務(wù),從管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,從而獲取每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值;將用戶設(shè)定的采集任務(wù)列表同步至其他在線任務(wù)分配節(jié)點(diǎn)中,將該任務(wù)列表中的采集任務(wù)在各個在線任務(wù)分配節(jié)點(diǎn)上逐條進(jìn)行循環(huán)均分,并根據(jù)所獲取采集任務(wù)的優(yōu)先級以及各個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,依次將采集任務(wù)分配至在線且處于正常運(yùn)行狀態(tài)的采集節(jié)點(diǎn),并將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn),將分配結(jié)果發(fā)送至任務(wù)倉庫中;同時(shí)實(shí)時(shí)對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控;
本發(fā)明實(shí)施例中,如圖4所示,進(jìn)行進(jìn)一步說明:所述的任務(wù)分配節(jié)點(diǎn)包括任務(wù)設(shè)定模塊、任務(wù)分配模塊和任務(wù)監(jiān)控模塊,具體為:任務(wù)設(shè)定模塊:用于從管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線任務(wù)分配節(jié)點(diǎn)列表,根據(jù)實(shí)際需求設(shè)定所需采集的任務(wù),用戶可以創(chuàng)建、修改、刪除采集任務(wù),設(shè)定每個采集任務(wù)包含的采集數(shù)據(jù)項(xiàng),并對每個采集任務(wù)或每個采集數(shù)據(jù)項(xiàng)設(shè)定優(yōu)先級和采樣周期,并將任務(wù)列表中的采集任務(wù)逐條循環(huán)均分給所有在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊;任務(wù)分配模塊:用于從管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,從而獲取每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,根據(jù)所獲取采集任務(wù)的優(yōu)先級以及各在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,依次將采集任務(wù)分配至在線且處于正常運(yùn)行狀態(tài)的采集節(jié)點(diǎn),并將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn),將分配結(jié)果發(fā)送到任務(wù)倉庫;任務(wù)監(jiān)控模塊:用于實(shí)時(shí)對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控。
本發(fā)明實(shí)施例中,管理節(jié)點(diǎn):用于提供分布式協(xié)同服務(wù),接收并管理3個采集節(jié)點(diǎn)和3個任務(wù)分配節(jié)點(diǎn)的注冊信息,按照注冊順序?qū)Σ杉?jié)點(diǎn)進(jìn)行編號,按照5s通信一次的頻率與采集節(jié)點(diǎn)進(jìn)行通信以獲取在線采集節(jié)點(diǎn);按照注冊順序?qū)θ蝿?wù)分配節(jié)點(diǎn)進(jìn)行編號,按照5s通信一次的頻率與任務(wù)分配節(jié)點(diǎn)進(jìn)行通信以獲取在線任務(wù)分配節(jié)點(diǎn);
本發(fā)明實(shí)施例中,管理切換器:用于捕捉主管理節(jié)點(diǎn)的故障信息,實(shí)現(xiàn)主管理節(jié)點(diǎn)與備管理節(jié)點(diǎn)之間的切換和主管理節(jié)點(diǎn)與備管理節(jié)點(diǎn)之間的數(shù)據(jù)同步;正常情況下,采集節(jié)點(diǎn)和任務(wù)分配節(jié)點(diǎn)到主管理節(jié)點(diǎn)注冊信息,并以5s通信一次的頻率與主管理節(jié)點(diǎn)進(jìn)行通信,任務(wù)分配節(jié)點(diǎn)從主管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,采集節(jié)點(diǎn)從主管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的采集節(jié)點(diǎn)列表;備管理節(jié)點(diǎn)實(shí)時(shí)從主管理節(jié)點(diǎn)獲取同步數(shù)據(jù)。當(dāng)管理切換器捕捉到主管理節(jié)點(diǎn)的故障信息時(shí),備管理節(jié)點(diǎn)作為新的主管理節(jié)點(diǎn)繼續(xù)提供協(xié)調(diào)服務(wù),采集節(jié)點(diǎn)和任務(wù)分配節(jié)點(diǎn)將向備管理節(jié)點(diǎn)注冊信息,并以5s通信一次的頻率與備管理節(jié)點(diǎn)進(jìn)行通信,任務(wù)分配節(jié)點(diǎn)從備管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,采集節(jié)點(diǎn)從備管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的采集節(jié)點(diǎn)列表;
本發(fā)明實(shí)施例中,任務(wù)倉庫:用于接收任務(wù)分配節(jié)點(diǎn)發(fā)送的采集任務(wù);
本發(fā)明實(shí)施例中,任務(wù)切換器:用于捕捉主任務(wù)倉庫的故障信息,實(shí)現(xiàn)主任務(wù)倉庫與備任務(wù)倉庫之間的切換和主任務(wù)倉庫與備任務(wù)倉庫之間的數(shù)據(jù)同步。正常情況下,系統(tǒng)采用主任務(wù)倉庫進(jìn)行工作,即任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊將采集任務(wù)分配結(jié)果發(fā)送到主任務(wù)倉庫中,采集節(jié)點(diǎn)從主任務(wù)倉庫中獲取各自所需采集的任務(wù),備任務(wù)倉庫實(shí)時(shí)從主任務(wù)倉庫獲取同步數(shù)據(jù)。當(dāng)任務(wù)切換器捕捉到主任務(wù)倉庫出現(xiàn)故障時(shí),備任務(wù)倉庫將開始工作,任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊將采集任務(wù)分配結(jié)果發(fā)送到備任務(wù)倉庫中,采集節(jié)點(diǎn)從備任務(wù)倉庫中獲取各自所需采集的任務(wù)。
本發(fā)明實(shí)施例中,3個采集節(jié)點(diǎn):用于從管理節(jié)點(diǎn)獲取其他在線采集節(jié)點(diǎn)列表,從任務(wù)倉庫中獲取各自所需采集的任務(wù),并按照采集任務(wù)的優(yōu)先級順序?qū)ΜF(xiàn)場控制站的數(shù)據(jù)進(jìn)行采集,將采集結(jié)果存入數(shù)據(jù)庫中。
本發(fā)明實(shí)施例中,采用大規(guī)模分布式數(shù)據(jù)采集系統(tǒng)進(jìn)行的數(shù)據(jù)采集方法,方法流程圖如圖5所示,包括以下步驟:
步驟1、對系統(tǒng)進(jìn)行初始化設(shè)置,即設(shè)置主管理節(jié)點(diǎn)、備管理節(jié)點(diǎn)、3個任務(wù)分配節(jié)點(diǎn)、主任務(wù)倉庫、備任務(wù)倉庫和3個采集節(jié)點(diǎn)的IP地址和端口號,并設(shè)置Internet時(shí)鐘同步和3個采集節(jié)點(diǎn)的運(yùn)行狀態(tài)閾值;
本發(fā)明實(shí)施例中,在管理節(jié)點(diǎn)中的配置文件中分別配置主管理節(jié)點(diǎn)的IP地址為:192.168.3.44;備管理節(jié)點(diǎn)的IP地址為:192.168.3.45;配置3個任務(wù)分配節(jié)點(diǎn)的IP地址分別為:192.168.3.46、192.168.3.47和192.168.3.48;配置主任務(wù)倉庫的IP地址為:192.168.3.49;備任務(wù)倉庫的IP地址為192.168.3.50;配置3個采集節(jié)點(diǎn)的IP地址分別為:192.168.3.51、192.168.3.52和192.168.3.53;配置主管理節(jié)點(diǎn)、備管理節(jié)點(diǎn)、3個任務(wù)分配節(jié)點(diǎn)、主任務(wù)倉庫、備任務(wù)倉庫、3個采集節(jié)點(diǎn)的端口號為5000;
本發(fā)明實(shí)施例中,設(shè)置3個采集節(jié)點(diǎn)的運(yùn)行狀態(tài)閾值均為默認(rèn)值,包括CPU正常運(yùn)行狀態(tài)閾值為CPU總量的3%~70%、CPU過載狀態(tài)閾值為CPU總量的75%~80%,內(nèi)存正常運(yùn)行狀態(tài)閾值為內(nèi)存總量的20%~70%、內(nèi)存過載狀態(tài)閾值為內(nèi)存總量的75%~80%,硬盤正常運(yùn)行狀態(tài)閾值為硬盤總量的21%~70%、硬盤過載狀態(tài)閾值為硬盤總量的75%~80%,網(wǎng)絡(luò)帶寬正常運(yùn)行狀態(tài)閾值為網(wǎng)絡(luò)帶寬總量的2%~70%、網(wǎng)絡(luò)帶寬過載狀態(tài)閾值為網(wǎng)絡(luò)帶寬總量的75%~80%。
步驟2、依次開啟9臺現(xiàn)場控制站和9組風(fēng)機(jī);
步驟3、開啟管理節(jié)點(diǎn)和任務(wù)倉庫,并依次開啟3個采集節(jié)點(diǎn)和3個任務(wù)分配節(jié)點(diǎn);
步驟4、3個采集節(jié)點(diǎn)開啟后自動向管理節(jié)點(diǎn)發(fā)送注冊信息,管理節(jié)點(diǎn)按照注冊順序?qū)Σ杉?jié)點(diǎn)進(jìn)行編號,采集節(jié)點(diǎn)按照注冊順序分別編號為1、2、3,并等待分配任務(wù);管理節(jié)點(diǎn)按照5s通信一次的頻率與采集節(jié)點(diǎn)進(jìn)行通信以獲取在線采集節(jié)點(diǎn);具體為:
步驟4-1、管理切換器實(shí)時(shí)獲取主管理節(jié)點(diǎn)的運(yùn)行狀態(tài)信息;當(dāng)主管理節(jié)點(diǎn)處于正常運(yùn)行狀態(tài)時(shí),3個采集節(jié)點(diǎn)開啟后自動向主管理節(jié)點(diǎn)注冊信息,并處于等待任務(wù)狀態(tài),3個采集節(jié)點(diǎn)和主管理節(jié)點(diǎn)每隔5s通信一次;當(dāng)主管理節(jié)點(diǎn)處于故障運(yùn)行狀態(tài)時(shí),3個采集節(jié)點(diǎn)向備管理節(jié)點(diǎn)注冊信息,并處于等待任務(wù)狀態(tài),3個采集節(jié)點(diǎn)和備管理節(jié)點(diǎn)每隔5s通信一次;
步驟4-2、管理節(jié)點(diǎn)自動獲取到在線的采集節(jié)點(diǎn);當(dāng)3個采集節(jié)點(diǎn)全部成功開啟之后,管理節(jié)點(diǎn)將自動獲取到3個在線采集節(jié)點(diǎn);當(dāng)3個采集節(jié)點(diǎn)部分成功開啟之后,管理節(jié)點(diǎn)將自動獲取到小于3個的在線采集節(jié)點(diǎn);
步驟5、3個任務(wù)分配節(jié)點(diǎn)開啟后自動向管理節(jié)點(diǎn)注冊信息,管理節(jié)點(diǎn)按照注冊順序?qū)θ蝿?wù)分配節(jié)點(diǎn)進(jìn)行編號,任務(wù)分配節(jié)點(diǎn)按照注冊順序分別編號為1、2、3,管理節(jié)點(diǎn)按照5s通信一次的頻率與任務(wù)分配節(jié)點(diǎn)進(jìn)行通信以獲取在線任務(wù)分配節(jié)點(diǎn);具體為:
步驟5-1、當(dāng)主管理節(jié)點(diǎn)處于正常運(yùn)行狀態(tài)時(shí),3個任務(wù)分配節(jié)點(diǎn)開啟后自動向主管理節(jié)點(diǎn)注冊信息,3個任務(wù)分配節(jié)點(diǎn)和主管理節(jié)點(diǎn)每隔5s通信一次;當(dāng)主管理節(jié)點(diǎn)處于故障運(yùn)行狀態(tài)時(shí),3個任務(wù)分配節(jié)點(diǎn)向備管理節(jié)點(diǎn)注冊信息,3個任務(wù)分配節(jié)點(diǎn)和備管理節(jié)點(diǎn)每隔5s通信一次;
步驟5-2、管理節(jié)點(diǎn)自動獲取到在線的任務(wù)分配節(jié)點(diǎn);當(dāng)3個任務(wù)分配節(jié)點(diǎn)全部成功開啟之后,管理節(jié)點(diǎn)將自動獲取到3個在線任務(wù)分配節(jié)點(diǎn)。當(dāng)3個任務(wù)分配節(jié)點(diǎn)部分成功開啟之后,管理節(jié)點(diǎn)將自動獲取到小于3個的在線任務(wù)分配節(jié)點(diǎn)。
步驟6、3個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)設(shè)定模塊分別從管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的任務(wù)分配節(jié)點(diǎn)列表,任務(wù)分配模塊分別從管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,3個在線采集節(jié)點(diǎn)分別從管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的采集節(jié)點(diǎn)列表;
本發(fā)明實(shí)施例中,當(dāng)主管理節(jié)點(diǎn)處于正常運(yùn)行狀態(tài)時(shí),3個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)設(shè)定模塊分別從主管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的任務(wù)分配節(jié)點(diǎn)列表,任務(wù)分配模塊分別從主管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,3個在線采集節(jié)點(diǎn)分別從主管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的采集節(jié)點(diǎn)列表;當(dāng)主管理節(jié)點(diǎn)處于故障運(yùn)行狀態(tài)時(shí),3個任務(wù)分配節(jié)點(diǎn)的任務(wù)設(shè)定模塊分別從備管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的任務(wù)分配節(jié)點(diǎn)列表,任務(wù)分配模塊分別從備管理節(jié)點(diǎn)實(shí)時(shí)獲取在線的采集節(jié)點(diǎn)列表和其他在線的任務(wù)分配節(jié)點(diǎn)列表,3個在線采集節(jié)點(diǎn)分別從備管理節(jié)點(diǎn)實(shí)時(shí)獲取其他在線的采集節(jié)點(diǎn)列表;
步驟7、根據(jù)實(shí)際需求,采用任意一個在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)設(shè)定模塊設(shè)定所需采集的任務(wù),并將任務(wù)列表中的采集任務(wù)平均分配給3個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊;具體如下:
步驟7-1、用戶在1號任務(wù)分配節(jié)點(diǎn)的任務(wù)設(shè)定模塊中對采集任務(wù)進(jìn)行設(shè)定,即創(chuàng)建、修改或刪除采集任務(wù),設(shè)定每個采集任務(wù)包含的采集數(shù)據(jù)項(xiàng),并對每個采集任務(wù)或每個采集數(shù)據(jù)項(xiàng)的優(yōu)先級和采樣周期進(jìn)行設(shè)定;
本發(fā)明實(shí)施例中,在1號任務(wù)分配節(jié)點(diǎn)的任務(wù)設(shè)定模塊中依次共創(chuàng)建了F15、F16、F17、F18、F20、F21、F22、F23、F24這9個采集任務(wù),分別對應(yīng)F15、F16、F17、F18、F20、F21、F22、F23、F24這9臺風(fēng)機(jī)上數(shù)據(jù)的采集,每個采集任務(wù)的采集數(shù)據(jù)項(xiàng)均為404個,其中Single Float型數(shù)據(jù)31個、Double Float型數(shù)據(jù)52個、Boolean型數(shù)據(jù)319個、Unsigned Integer型數(shù)據(jù)2個;將F15、F16、F17這3個任務(wù)的優(yōu)先級設(shè)置為2,將F18、F20、F21這3個任務(wù)的優(yōu)先級設(shè)置為1,表示最高優(yōu)先級任務(wù),將F22、F23、F24這3個任務(wù)的優(yōu)先級設(shè)置為3,表示低優(yōu)先級任務(wù)。將所有任務(wù)的采樣周期均設(shè)置為1000ms。
步驟7-2、將任務(wù)列表中的采集任務(wù)逐條循環(huán)均分給3個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊,直到任務(wù)列表中所有的采集任務(wù)都分配給任務(wù)分配模塊為止;
本發(fā)明實(shí)施例中,將任務(wù)列表中的采集任務(wù)逐條循環(huán)均分給3個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊,直到任務(wù)列表中所有的采集任務(wù)都分配給任務(wù)分配模塊為止,每個任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊僅對其所獲取的采集任務(wù)具有分配權(quán)限,本實(shí)施方式中,采集任務(wù)F15、F18、F22由1號任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊進(jìn)行分配,采集任務(wù)F16、F20、F23由2號任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊進(jìn)行分配,采集任務(wù)F17、F21、F24由3號任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊進(jìn)行分配。
步驟8、每個在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)分配模塊獲取3個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,根據(jù)其所獲取采集任務(wù)的優(yōu)先級,以及3個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,依次將采集任務(wù)分配至在線且處于正常運(yùn)行狀態(tài)的采集節(jié)點(diǎn),并將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn),將分配結(jié)果發(fā)送至任務(wù)倉庫中;同時(shí)每個在線任務(wù)分配節(jié)點(diǎn)內(nèi)部的任務(wù)監(jiān)控模塊實(shí)時(shí)對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控;具體為:
步驟8-1、每個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊分別對其獲取到的采集任務(wù)按照優(yōu)先級進(jìn)行排隊(duì),并根據(jù)在線采集節(jié)點(diǎn)列表,輪詢每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值;
本發(fā)明實(shí)施例中,每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息即每個在線采集節(jié)點(diǎn)的CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)寬帶的總量、使用率和余量,每個采集節(jié)點(diǎn)的運(yùn)行狀態(tài)閾值即每個采集節(jié)點(diǎn)的CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)寬帶正常運(yùn)行狀態(tài)閾值和過載運(yùn)行狀態(tài)閾值;
步驟8-2、通過比較每個在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息及初始對其設(shè)置的運(yùn)行狀態(tài)閾值,分別判斷3個在線采集節(jié)點(diǎn)是正常運(yùn)行狀態(tài)還是過載運(yùn)行狀態(tài),若在線采集節(jié)點(diǎn)處于正常運(yùn)行狀態(tài),則根據(jù)該在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,按照任務(wù)優(yōu)先級順序?qū)υ撛诰€采集節(jié)點(diǎn)分配采集任務(wù);若在線采集節(jié)點(diǎn)處于過載運(yùn)行狀態(tài),則不對該在線采集節(jié)點(diǎn)分配采集任務(wù);
本發(fā)明實(shí)施例中,通過比較每個在線采集節(jié)點(diǎn)的CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)帶寬的使用率及初始對其設(shè)置的CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)帶寬正常運(yùn)行狀態(tài)閾值和過載運(yùn)行狀態(tài)閾值,分別判斷3個在線采集節(jié)點(diǎn)是正常運(yùn)行狀態(tài)還是過載運(yùn)行狀態(tài),若在線采集節(jié)點(diǎn)的CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)帶寬的使用率均處于初始對其設(shè)置的正常運(yùn)行狀態(tài)閾值范圍內(nèi),則判斷該在線采集節(jié)點(diǎn)為正常運(yùn)行狀態(tài),此時(shí)3個任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊均根據(jù)該在線采集節(jié)點(diǎn)的運(yùn)行狀態(tài)信息,按照采集任務(wù)優(yōu)先級順序?qū)ζ浞峙洳杉蝿?wù),CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)帶寬余量越大的在線采集節(jié)點(diǎn)獲得的采集任務(wù)越多;若在線采集節(jié)點(diǎn)的CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)帶寬的使用率中任意一項(xiàng)處于初始對其設(shè)置的過載運(yùn)行狀態(tài)閾值范圍內(nèi),則判斷該在線采集節(jié)點(diǎn)為過載運(yùn)行狀態(tài),此時(shí)3個任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊均不對其分配采集任務(wù);
步驟8-3、將分配給目標(biāo)采集節(jié)點(diǎn)的采集任務(wù)作為備份循環(huán)分配給與其相鄰的下兩個編號在線采集節(jié)點(diǎn);
本發(fā)明實(shí)施例中,將分配給1號采集節(jié)點(diǎn)的采集任務(wù)作為備份分配給2、3號采集節(jié)點(diǎn),將分配給2號采集節(jié)點(diǎn)的采集任務(wù)作為備份分配給3、1號采集節(jié)點(diǎn),將分配給3號采集節(jié)點(diǎn)的采集任務(wù)作為備份分配給1、2號采集節(jié)點(diǎn)。主采集節(jié)點(diǎn)稱為master節(jié)點(diǎn),備份的采集節(jié)點(diǎn)分別稱為slave1節(jié)點(diǎn),slave2節(jié)點(diǎn);
步驟8-4、每個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊分別將其分配結(jié)果發(fā)送至任務(wù)倉庫中;
本發(fā)明實(shí)施例中,任務(wù)切換器輪詢主任務(wù)倉庫的運(yùn)行情況,當(dāng)主任務(wù)倉庫處于正常運(yùn)行狀態(tài)時(shí),每個在線任務(wù)分配節(jié)點(diǎn)中的任務(wù)分配模塊分別將其分配結(jié)果發(fā)送到主任務(wù)倉庫;當(dāng)主任務(wù)倉庫處于故障運(yùn)行狀態(tài)時(shí),每個在線任務(wù)分配節(jié)點(diǎn)中的任務(wù)分配模塊分別將其分配結(jié)果發(fā)送到備任務(wù)倉庫;
步驟8-5、每個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)監(jiān)控模塊分別對各自節(jié)點(diǎn)上采集任務(wù)的分配、執(zhí)行和等待情況進(jìn)行監(jiān)控;
步驟8-6、若存在任務(wù)分配節(jié)點(diǎn)發(fā)生故障,則上述任務(wù)分配節(jié)點(diǎn)為離線狀態(tài),其他在線的任務(wù)分配節(jié)點(diǎn)從管理節(jié)點(diǎn)實(shí)時(shí)獲取更新后的在線任務(wù)分配節(jié)點(diǎn)列表,任務(wù)設(shè)定模塊將任務(wù)列表中的采集任務(wù)逐條循環(huán)均分給各個在線任務(wù)分配節(jié)點(diǎn)的任務(wù)分配模塊,直到任務(wù)列表中所有的采集任務(wù)都分配給任務(wù)分配模塊為止,返回執(zhí)行步驟8-1。
步驟9、每個在線采集節(jié)點(diǎn)分別從任務(wù)倉庫中獲取各自所需采集的任務(wù);
本發(fā)明實(shí)施例中,當(dāng)主任務(wù)倉庫處于正常運(yùn)行狀態(tài)時(shí),每個在線采集節(jié)點(diǎn)分別從主任務(wù)倉庫獲取各自所需采集的采集任務(wù);當(dāng)主任務(wù)倉庫處于故障運(yùn)行狀態(tài)時(shí),每個在線采集節(jié)點(diǎn)分別從備任務(wù)倉庫獲取各自所需采集的采集任務(wù);
步驟10、每個在線采集節(jié)點(diǎn)按照采集任務(wù)的優(yōu)先級順序?qū)ΜF(xiàn)場控制站的數(shù)據(jù)進(jìn)行采集,并將采集結(jié)果存入數(shù)據(jù)庫中;具體為:
步驟10-1、每個在線采集節(jié)點(diǎn)按照采集任務(wù)的優(yōu)先級順序?qū)ΜF(xiàn)場控制站的數(shù)據(jù)進(jìn)行采集,正常情況下,與目標(biāo)采集節(jié)點(diǎn)相鄰的下兩個編號在線采集節(jié)點(diǎn)所備份的采集任務(wù)僅作本地緩存,不存入數(shù)據(jù)庫中;
本發(fā)明實(shí)施例中,正常情況下,slave1、slave2上的備份采集任務(wù)采集完成后只進(jìn)行本地緩存,不存入數(shù)據(jù)庫。
步驟10-2、當(dāng)存在采集節(jié)點(diǎn)故障時(shí),該采集節(jié)點(diǎn)將處于離線狀態(tài),在當(dāng)前采樣周期內(nèi),相鄰的第一個編號在線采集節(jié)點(diǎn)將備份采集任務(wù)的采集結(jié)果從本地緩存區(qū)存入數(shù)據(jù)庫中;若此時(shí)相鄰的第一個編號在線采集節(jié)點(diǎn)也發(fā)生故障,則相鄰的第二個編號在線采集節(jié)點(diǎn)將備份采集任務(wù)的采集結(jié)果從本地緩存區(qū)存入數(shù)據(jù)庫中;
本發(fā)明實(shí)施例中,當(dāng)采集節(jié)點(diǎn)故障,master的數(shù)據(jù)存入數(shù)據(jù)庫失敗時(shí),在當(dāng)前采集周期,slave1通過管理節(jié)點(diǎn)檢測到master的故障信息,將備份采集任務(wù)的采集結(jié)果從本地緩存區(qū)讀入數(shù)據(jù)庫,如果此時(shí)slave1備份采集節(jié)點(diǎn)也出現(xiàn)故障,slave2通過管理節(jié)點(diǎn)檢測到master和slave1的故障信息,將備份采集任務(wù)的采集結(jié)果從本地緩存區(qū)讀入數(shù)據(jù)庫。每個采集周期,緩存區(qū)內(nèi)容刷新一次。
步驟10-3、當(dāng)開始下一個采樣周期時(shí),每個在線任務(wù)分配節(jié)點(diǎn)均通過管理節(jié)點(diǎn)獲取到更新后的在線采集節(jié)點(diǎn)列表,將采集任務(wù)重新按照優(yōu)先級順序分配給在線的采集節(jié)點(diǎn),相應(yīng)的在線采集節(jié)點(diǎn)執(zhí)行其獲取的采集任務(wù)并將執(zhí)行結(jié)果存入數(shù)據(jù)庫。