亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種節(jié)點(diǎn)重啟后的數(shù)據(jù)處理方法及設(shè)備與流程

文檔序號(hào):12786222閱讀:406來(lái)源:國(guó)知局
一種節(jié)點(diǎn)重啟后的數(shù)據(jù)處理方法及設(shè)備與流程

本申請(qǐng)涉及通信技術(shù)領(lǐng)域,特別涉及一種節(jié)點(diǎn)重啟后的數(shù)據(jù)處理方法。本申請(qǐng)同時(shí)還涉及一種數(shù)據(jù)處理設(shè)備。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,云計(jì)算平臺(tái)越來(lái)越成為人們所重視的對(duì)象,云計(jì)算平臺(tái)也稱為云平臺(tái)。云平臺(tái)可以按照功能劃分為3類:以數(shù)據(jù)存儲(chǔ)為主的存儲(chǔ)型云平臺(tái),以數(shù)據(jù)處理為主的計(jì)算型云平臺(tái)以及計(jì)算和數(shù)據(jù)存儲(chǔ)處理兼顧的綜合云計(jì)算平臺(tái)。云平臺(tái)允許開(kāi)發(fā)者們或是將寫好的程序放在“云”里運(yùn)行,或是使用“云”里提供的服務(wù),或二者皆是的平臺(tái)。

如圖1所示,為現(xiàn)有的云平臺(tái)實(shí)時(shí)監(jiān)控服務(wù)的架構(gòu)設(shè)計(jì)示意圖。云平臺(tái)日志服務(wù)的架構(gòu)設(shè)計(jì)通常分為五層:(日志)收集層、(日志)傳輸層、處理層、存儲(chǔ)層和監(jiān)控中心。收集層負(fù)責(zé)讀取用戶的各類日志,然后將需要存儲(chǔ)的日志發(fā)送到傳輸層,在圖1所示的現(xiàn)有云平臺(tái)日志服務(wù)架構(gòu)示意圖中,該層的功能由各種Agent(代理)結(jié)合現(xiàn)有的云服務(wù)功能實(shí)現(xiàn),其中Agent部署在各級(jí)物理機(jī)或虛擬機(jī)上,按規(guī)則讀取用戶的日志并發(fā)送。處理層一般由多個(gè)可擴(kuò)展的工作節(jié)點(diǎn)(圖2中的處理worker)組成,接收傳輸層的日志,處理后存儲(chǔ)到各類存儲(chǔ)設(shè)備,一個(gè)處理worker本質(zhì)是一個(gè)系統(tǒng)進(jìn)程,無(wú)狀態(tài),可橫向擴(kuò)展,日志能否保證順序跟處理層的邏輯密切相關(guān)。存儲(chǔ)層負(fù)責(zé)數(shù)據(jù)存儲(chǔ),可以是物理磁盤,也可以是由分布式文件系統(tǒng)提供的虛擬磁盤。傳輸層處于收集層與處理層中間,負(fù)責(zé)保證日志被發(fā)送到處理層,一般由可容災(zāi)可堆積的消息隊(duì)列實(shí)現(xiàn),它是收集層和處理層的橋梁。存儲(chǔ)層負(fù)責(zé)數(shù)據(jù)存儲(chǔ)。監(jiān)控中心包括訪問(wèn)層,訪問(wèn)層設(shè)置有專用的訪問(wèn)API,用以對(duì)外提供統(tǒng)一的數(shù)據(jù)訪問(wèn)接口。

實(shí)時(shí)監(jiān)控服務(wù)對(duì)實(shí)時(shí)性要求較高,一般要求監(jiān)控延時(shí)小于5分鐘,每分鐘一個(gè)監(jiān)控?cái)?shù)據(jù)。在如此高的實(shí)時(shí)要求下,如何保證系統(tǒng)重啟時(shí),盡量保證數(shù)據(jù)不丟不重(至少保證監(jiān)控曲線少抖動(dòng)、不丟點(diǎn))是一個(gè)技術(shù)難題。其中最關(guān)鍵的問(wèn)題在于有狀態(tài)節(jié)點(diǎn)的重啟策略,即實(shí)時(shí)計(jì)算系統(tǒng)處理節(jié)點(diǎn)的重啟。

為了避免由于節(jié)點(diǎn)重啟所導(dǎo)致的監(jiān)控曲線抖動(dòng)問(wèn)題,現(xiàn)有技術(shù)主要采取以下三種方法:

(1)數(shù)據(jù)重放

該方式在重啟的時(shí)候重放消息隊(duì)列中前幾分鐘的數(shù)據(jù),保證數(shù)據(jù)不丟。

(2)持久化中間狀態(tài)

該方式定時(shí)把統(tǒng)計(jì)狀態(tài)保存到持久化的數(shù)據(jù)庫(kù),重啟時(shí)恢復(fù)。

(3)同時(shí)處理兩份數(shù)據(jù)

該方式通過(guò)消息隊(duì)列支持多消費(fèi)端的特點(diǎn),同時(shí)運(yùn)行兩個(gè)實(shí)時(shí)計(jì)算任務(wù),重啟一個(gè)時(shí),用另一個(gè)的數(shù)據(jù),重啟后再切換回來(lái)。

然而,發(fā)明人在實(shí)現(xiàn)本申請(qǐng)的過(guò)程中發(fā)現(xiàn),以上現(xiàn)有技術(shù)分別存在著以下缺點(diǎn):

(1)數(shù)據(jù)重放容易導(dǎo)致數(shù)據(jù)重復(fù),且要依賴于消息隊(duì)列,數(shù)據(jù)處理往往會(huì)涉及到多個(gè)數(shù)據(jù)存儲(chǔ)過(guò)程,例如:既要更新mysql的元數(shù)據(jù),又要存儲(chǔ)原始數(shù)據(jù)到hadoop。這種情況下進(jìn)行數(shù)據(jù)重放很可能導(dǎo)致其中部分存儲(chǔ)重復(fù)。而且數(shù)據(jù)重放依賴于消息隊(duì)列的重放功能,比如Kafka,而ONS則不支持。

(2)持久化中間狀態(tài)不適用于擴(kuò)、縮容、升級(jí)情況,且邏輯復(fù)雜。很多時(shí)候系統(tǒng)重啟就是為了擴(kuò)容、縮容或系統(tǒng)升級(jí),擴(kuò)縮容后每個(gè)處理節(jié)點(diǎn)負(fù)責(zé)的數(shù)據(jù)就會(huì)改變,與原來(lái)的中間狀態(tài)會(huì)不一致。升級(jí)時(shí)也可能會(huì)導(dǎo)致中間狀態(tài)的不一致。而且當(dāng)計(jì)算復(fù)雜時(shí),中間狀態(tài)很多,持久化和恢復(fù)的邏輯也比較復(fù)雜。

(3)同時(shí)處理兩份數(shù)據(jù)成本比較高,并需要占用更多的計(jì)算資源和存儲(chǔ)資源。當(dāng)處理的數(shù)據(jù)量大時(shí),所造成的浪費(fèi)也很大。

由此可見(jiàn),如何在節(jié)省硬件資源消耗的前提下,盡量避免節(jié)點(diǎn)重啟所帶來(lái)的數(shù)據(jù)處理滯后的問(wèn)題,成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問(wèn)題。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)?zhí)峁┝艘环N節(jié)點(diǎn)重啟后的數(shù)據(jù)處理方法,用以在減少硬件修改成本的前提下,盡量避免節(jié)點(diǎn)重啟所帶來(lái)的數(shù)據(jù)處理滯后問(wèn)題。該方法應(yīng)用于包括分布式消息隊(duì)列以及處理節(jié)點(diǎn)的數(shù)據(jù)處理系統(tǒng)中,包括以下步驟:

當(dāng)所述處理節(jié)點(diǎn)重新啟動(dòng)完成后,所述處理節(jié)點(diǎn)獲取所述分布式消息隊(duì)列中當(dāng)前緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)的時(shí)刻;

所述處理節(jié)點(diǎn)根據(jù)當(dāng)前的時(shí)刻以及所述遺留數(shù)據(jù)的時(shí)刻確定恢復(fù)周期;

所述處理節(jié)點(diǎn)在所述恢復(fù)周期內(nèi)處理所述遺留數(shù)據(jù)以及所述分布式消息隊(duì)列中的新增數(shù)據(jù)。

優(yōu)選地,所述數(shù)據(jù)處理系統(tǒng)還包括存儲(chǔ)節(jié)點(diǎn),在所述處理節(jié)點(diǎn)重新啟動(dòng)完成之前,還包括:

所述處理節(jié)點(diǎn)接收計(jì)算任務(wù)關(guān)閉指令;

所述處理節(jié)點(diǎn)停止從所述分布式消息隊(duì)列中接收數(shù)據(jù),并將自身當(dāng)前已緩存的數(shù)據(jù)在處理完畢后寫入所述存儲(chǔ)節(jié)點(diǎn)。

優(yōu)選地,所述處理節(jié)點(diǎn)根據(jù)當(dāng)前的時(shí)刻以及所述遺留數(shù)據(jù)的時(shí)刻確定恢復(fù)周期,具體為:

獲取所述緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)所對(duì)應(yīng)的時(shí)刻距離當(dāng)前的時(shí)刻的時(shí)間長(zhǎng)度;

生成所述恢復(fù)周期,所述恢復(fù)周期的時(shí)長(zhǎng)與所述時(shí)間長(zhǎng)度一致。

優(yōu)選地,所述處理節(jié)點(diǎn)在所述恢復(fù)周期內(nèi)處理所述遺留數(shù)據(jù)以及所述分 布式消息隊(duì)列中的新增數(shù)據(jù),具體為:

根據(jù)所述恢復(fù)周期的單位時(shí)間長(zhǎng)度依次設(shè)置多個(gè)處理時(shí)間段,并基于所述遺留數(shù)據(jù)以及所述新增數(shù)據(jù)為各所述處理時(shí)間段分配待處理數(shù)據(jù);

在各所述處理時(shí)間段內(nèi)處理對(duì)應(yīng)的待處理數(shù)據(jù),并在所述恢復(fù)周期結(jié)束后將所述計(jì)算任務(wù)恢復(fù)為正常處理邏輯。

優(yōu)選地,所述處理時(shí)間段由數(shù)據(jù)處理時(shí)間以及數(shù)據(jù)同步時(shí)間按序組成,在各所述處理時(shí)間段內(nèi)處理對(duì)應(yīng)的待處理數(shù)據(jù),具體為:

在所述數(shù)據(jù)處理時(shí)間內(nèi)處理所述待處理數(shù)據(jù),并在所述數(shù)據(jù)處理時(shí)間結(jié)束時(shí)將已處理的待處理數(shù)據(jù)進(jìn)行存儲(chǔ);

若所述數(shù)據(jù)處理時(shí)間結(jié)束后存在尚未處理的待處理數(shù)據(jù),在所述數(shù)據(jù)同步時(shí)間內(nèi)將所述尚未處理的待處理數(shù)據(jù)丟棄。

相應(yīng)的本申請(qǐng)還提出了一種數(shù)據(jù)處理設(shè)備,作為處理節(jié)點(diǎn)應(yīng)用于包括分布式消息隊(duì)列以及所述處理節(jié)點(diǎn)的數(shù)據(jù)處理系統(tǒng)中,該數(shù)據(jù)處理設(shè)備包括:

獲取模塊,用于當(dāng)重新啟動(dòng)完成后,獲取所述分布式消息隊(duì)列中當(dāng)前緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)的時(shí)刻;

確定模塊,用于根據(jù)當(dāng)前的時(shí)刻以及所述遺留數(shù)據(jù)的時(shí)刻確定恢復(fù)周期;

處理模塊,用于在所述恢復(fù)周期內(nèi)處理所述遺留數(shù)據(jù)以及所述分布式消息隊(duì)列中的新增數(shù)據(jù)。

優(yōu)選地,所述數(shù)據(jù)處理系統(tǒng)還包括存儲(chǔ)節(jié)點(diǎn),所述數(shù)據(jù)處理設(shè)備還包括:

關(guān)閉模塊,用于接收計(jì)算任務(wù)關(guān)閉指令,停止從所述分布式消息隊(duì)列中接收數(shù)據(jù),并將自身當(dāng)前已緩存的數(shù)據(jù)在處理完畢后寫入所述存儲(chǔ)節(jié)點(diǎn)。

優(yōu)選地,所述確定模塊具體包括:

獲取子模塊,獲取所述緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)所對(duì)應(yīng)的時(shí)刻距離當(dāng)前的時(shí)刻的時(shí)間長(zhǎng)度;

生成子模塊,生成所述恢復(fù)周期,所述恢復(fù)周期的時(shí)長(zhǎng)與所述時(shí)間長(zhǎng)度 一致。

優(yōu)選地,所述處理模塊具體包括:

設(shè)置子模塊,根據(jù)所述恢復(fù)周期的單位時(shí)間長(zhǎng)度依次設(shè)置多個(gè)處理時(shí)間段,并基于所述遺留數(shù)據(jù)以及所述新增數(shù)據(jù)為各所述處理時(shí)間段分配待處理數(shù)據(jù);

處理子模塊,在各所述處理時(shí)間段內(nèi)處理對(duì)應(yīng)的待處理數(shù)據(jù);

恢復(fù)子模塊,所述恢復(fù)周期結(jié)束后將所述計(jì)算任務(wù)恢復(fù)為正常處理邏輯。

優(yōu)選地,所述處理時(shí)間段由數(shù)據(jù)處理時(shí)間以及數(shù)據(jù)同步時(shí)間按序組成,所述處理子模塊具體為:

在所述數(shù)據(jù)處理時(shí)間內(nèi)處理所述待處理數(shù)據(jù),并在所述數(shù)據(jù)處理時(shí)間結(jié)束時(shí)將已處理的待處理數(shù)據(jù)進(jìn)行存儲(chǔ);

若所述數(shù)據(jù)處理時(shí)間結(jié)束后存在尚未處理的待處理數(shù)據(jù),在所述數(shù)據(jù)同步時(shí)間內(nèi)將所述尚未處理的待處理數(shù)據(jù)丟棄。

由此可見(jiàn),通過(guò)應(yīng)用本申請(qǐng)的技術(shù)方案,當(dāng)所述處理節(jié)點(diǎn)重新啟動(dòng)完成后,該處理節(jié)點(diǎn)獲取分布式消息隊(duì)列中當(dāng)前緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)的時(shí)刻,根據(jù)當(dāng)前的時(shí)刻以及遺留數(shù)據(jù)的時(shí)刻確定恢復(fù)周期,并在恢復(fù)周期內(nèi)處理遺留數(shù)據(jù)以及分布式消息隊(duì)列中的新增數(shù)據(jù)。從而避免了由于重啟所導(dǎo)致的數(shù)據(jù)處理間斷,消除了對(duì)用戶感知產(chǎn)生的影響,提升了用戶的使用體驗(yàn)。

附圖說(shuō)明

圖1為現(xiàn)有技術(shù)中云平臺(tái)實(shí)時(shí)監(jiān)控服務(wù)的架構(gòu)示意圖;

圖2為本申請(qǐng)?zhí)岢龅囊环N節(jié)點(diǎn)重啟后的數(shù)據(jù)處理方法的流程示意圖;

圖3為本申請(qǐng)具體實(shí)施例中在恢復(fù)周期內(nèi)處理數(shù)據(jù)的示意圖;

圖4為本申請(qǐng)?zhí)岢龅囊环N數(shù)據(jù)處理設(shè)備的結(jié)構(gòu)示意圖。

具體實(shí)施方式

有鑒于現(xiàn)有技術(shù)中的問(wèn)題,本申請(qǐng)?zhí)岢隽艘环N節(jié)點(diǎn)重啟后的數(shù)據(jù)處理方法,該方法應(yīng)用在包括分布式消息隊(duì)列以及處理節(jié)點(diǎn)的數(shù)據(jù)處理系統(tǒng)中,用以避免當(dāng)該數(shù)據(jù)處理系統(tǒng)中的處理節(jié)點(diǎn)因故重啟而導(dǎo)致的數(shù)據(jù)處理中斷對(duì)用戶感知造成影響的問(wèn)題。需要說(shuō)明的是,該數(shù)據(jù)處理系統(tǒng)可以為現(xiàn)有技術(shù)中的實(shí)時(shí)監(jiān)控系統(tǒng),或者是用戶日志記錄系統(tǒng),在此基礎(chǔ)上本領(lǐng)域技術(shù)人員還可以將該本申請(qǐng)的方案應(yīng)用在其他對(duì)于數(shù)據(jù)具有實(shí)時(shí)處理要求的其他系統(tǒng)中,這些都屬本申請(qǐng)的保護(hù)范圍。

如圖2所示,該方法包括以下步驟:

S201,當(dāng)所述處理節(jié)點(diǎn)重新啟動(dòng)完成后,所述處理節(jié)點(diǎn)獲取所述分布式消息隊(duì)列中當(dāng)前緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)的時(shí)刻。

在目前針對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理的數(shù)據(jù)處理系統(tǒng)中,其中的處理節(jié)點(diǎn)往往會(huì)因?yàn)樵O(shè)備本身或是人為的原因需要進(jìn)行重啟,由于處理節(jié)點(diǎn)一般是單個(gè)較大的數(shù)據(jù)處理設(shè)備或是多個(gè)數(shù)據(jù)處理設(shè)備的邏輯總和,因此其在重啟的過(guò)程中往往體現(xiàn)為無(wú)法及時(shí)地從與之連接的分布式消息隊(duì)列中取走數(shù)據(jù),這樣即造成了消息隊(duì)列中待處理數(shù)據(jù)的遺留。所以,當(dāng)處理節(jié)點(diǎn)完成重新啟動(dòng)后,可以依據(jù)消息隊(duì)列中最早的數(shù)據(jù)的時(shí)刻和當(dāng)前的時(shí)刻對(duì)比來(lái)確定重新啟動(dòng)的過(guò)程花費(fèi)了多長(zhǎng)的時(shí)間。在此需要說(shuō)明的是,該步驟中緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)的時(shí)刻可以設(shè)置為該緩存數(shù)據(jù)生成的時(shí)刻,也可以設(shè)置為該處理節(jié)點(diǎn)本應(yīng)該獲取該緩存數(shù)據(jù)的時(shí)刻,在能夠使處理節(jié)點(diǎn)確定得到重啟時(shí)長(zhǎng)的基礎(chǔ)上,針對(duì)不同情況的不同時(shí)刻設(shè)置點(diǎn)均屬于本申請(qǐng)的保護(hù)范圍。

此外,由于處理節(jié)點(diǎn)在停止從消息隊(duì)列中獲取數(shù)據(jù)到正式重啟前往往有一段時(shí)間,此時(shí)處理節(jié)點(diǎn)中自身尚緩存有一定先前從消息隊(duì)列中所獲取的數(shù)據(jù)。因此為了保證處理節(jié)點(diǎn)在關(guān)閉數(shù)據(jù)接收功能的同時(shí)將自身緩存的數(shù)據(jù)超時(shí)自動(dòng)進(jìn)行保存而不丟失,在本申請(qǐng)優(yōu)選實(shí)施例中,當(dāng)處理節(jié)點(diǎn)接收計(jì)算任 務(wù)關(guān)閉指令(該指令可為系統(tǒng)根據(jù)處理節(jié)點(diǎn)的狀態(tài)自動(dòng)下發(fā)或是由人工發(fā)送)后,一方面停止從所述分布式消息隊(duì)列中接收數(shù)據(jù),另一方面將自身當(dāng)前已緩存的數(shù)據(jù)在處理完畢后寫入當(dāng)前數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)節(jié)點(diǎn),以此實(shí)現(xiàn)緩存數(shù)據(jù)的自動(dòng)保存。

在本申請(qǐng)的具體實(shí)施例中,首先通過(guò)系統(tǒng)向處理節(jié)點(diǎn)的實(shí)時(shí)計(jì)算任務(wù)發(fā)送關(guān)閉指令。計(jì)算任務(wù)收到指令后,進(jìn)入關(guān)閉狀態(tài),停止接收消息隊(duì)列消息。處理節(jié)點(diǎn)繼續(xù)處理緩存中的數(shù)據(jù),然后等待計(jì)算結(jié)果超時(shí)自動(dòng)寫到存儲(chǔ)服務(wù)中。實(shí)時(shí)計(jì)算為處理一段時(shí)間沒(méi)有新數(shù)據(jù)的情況,且會(huì)有超出時(shí)間窗口自動(dòng)保存計(jì)算結(jié)果的機(jī)制,因此通過(guò)該步驟可使處理的數(shù)據(jù)都持久化,從而不需要中間狀態(tài)的保存和恢復(fù)。

S202,所述處理節(jié)點(diǎn)根據(jù)當(dāng)前的時(shí)刻以及所述遺留數(shù)據(jù)的時(shí)刻確定恢復(fù)周期。

基于S201中遺留數(shù)據(jù)的時(shí)刻,本申請(qǐng)的優(yōu)選實(shí)施例通過(guò)獲取所述緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)所對(duì)應(yīng)的時(shí)刻距離當(dāng)前的時(shí)刻的時(shí)間長(zhǎng)度,并生成時(shí)長(zhǎng)與上述時(shí)間長(zhǎng)度一致的恢復(fù)周期。

舉例來(lái)說(shuō),當(dāng)處理節(jié)點(diǎn)的任務(wù)重新啟動(dòng)后,處理節(jié)點(diǎn)將比較消息隊(duì)列中數(shù)據(jù)的時(shí)間和系統(tǒng)時(shí)間的差值,設(shè)定數(shù)據(jù)恢復(fù)周期。比如:數(shù)據(jù)時(shí)間為12:02:10,而當(dāng)前時(shí)間為12:04:08,表示剛才的任務(wù)關(guān)閉和啟動(dòng)時(shí)的初始化花了2分鐘左右,需要把這兩分鐘的數(shù)據(jù)處理給追趕回來(lái)。衡量數(shù)據(jù)量和處理能力,可設(shè)定一個(gè)恢復(fù)周期,例如:2分鐘。關(guān)閉啟動(dòng)耗費(fèi)的時(shí)間以及數(shù)據(jù)追趕的時(shí)間要在5分鐘內(nèi),不然數(shù)據(jù)延遲就會(huì)超過(guò)5分鐘。

S203,所述處理節(jié)點(diǎn)在所述恢復(fù)周期內(nèi)處理所述遺留數(shù)據(jù)以及所述分布式消息隊(duì)列中的新增數(shù)據(jù)。

在確定了恢復(fù)周期之后,處理節(jié)點(diǎn)在后續(xù)該周期內(nèi)需要同時(shí)處理兩方面的數(shù)據(jù),一方面是之前消息隊(duì)列中的遺留數(shù)據(jù),另一方面則是在周期內(nèi)消息隊(duì)列中新增的數(shù)據(jù)。為了有序地針對(duì)這兩方面的數(shù)據(jù)進(jìn)行處理,在本申請(qǐng)的優(yōu)選實(shí)施例中,首先會(huì)根據(jù)所述恢復(fù)周期的單位時(shí)間長(zhǎng)度依次設(shè)置多個(gè)處理時(shí)間段,隨后再基于所述遺留數(shù)據(jù)以及所述新增數(shù)據(jù)為各所述處理時(shí)間段分配待處理數(shù)據(jù)。該過(guò)程中遺留數(shù)據(jù)以及新增數(shù)據(jù)可以混合在一起平均分配到各個(gè)時(shí)間段內(nèi),也可以按照類別的不同單獨(dú)針對(duì)不同處理時(shí)間段進(jìn)行分配,這些都屬于本申請(qǐng)的保護(hù)范圍。

在針對(duì)各個(gè)處理時(shí)間段分配了相應(yīng)的待處理數(shù)據(jù)之后,該實(shí)施例即可在各所述處理時(shí)間段內(nèi)處理對(duì)應(yīng)的待處理數(shù)據(jù),并在所述恢復(fù)周期結(jié)束后將所述計(jì)算任務(wù)恢復(fù)為正常處理邏輯。從而完成處理節(jié)點(diǎn)重啟后數(shù)據(jù)處理的無(wú)縫銜接。

進(jìn)一步地,為了使處理節(jié)點(diǎn)能夠在每個(gè)處理時(shí)間段內(nèi)高效地完成數(shù)據(jù)處理,本申請(qǐng)的優(yōu)選實(shí)施例將處理時(shí)間段劃分為數(shù)據(jù)處理時(shí)間以及數(shù)據(jù)同步時(shí)間,二者按序組成(數(shù)據(jù)處理時(shí)間-數(shù)據(jù)同步時(shí)間),在當(dāng)各所述處理時(shí)間段內(nèi)處理對(duì)應(yīng)的待處理數(shù)據(jù)時(shí),首先在所述數(shù)據(jù)處理時(shí)間內(nèi)處理所述待處理數(shù)據(jù),并在所述數(shù)據(jù)處理時(shí)間結(jié)束時(shí)將已處理的待處理數(shù)據(jù)進(jìn)行存儲(chǔ),之后若數(shù)據(jù)處理時(shí)間結(jié)束后存在尚未處理的待處理數(shù)據(jù),在所述數(shù)據(jù)同步時(shí)間內(nèi)將所述尚未處理的待處理數(shù)據(jù)丟棄。

以S202中的具體實(shí)施例的數(shù)據(jù)以及圖3所示的數(shù)據(jù)處理示意圖為例,在該步驟中處理節(jié)點(diǎn)相當(dāng)于需要在2分鐘內(nèi)追趕4分鐘數(shù)據(jù)。因此該具體實(shí)施例將2分鐘等分成4份,每份再按比較劃分?jǐn)?shù)據(jù)處理時(shí)間和同步時(shí)間,在處理時(shí)間處理對(duì)應(yīng)那分鐘的數(shù)據(jù)并存儲(chǔ)結(jié)果。同步時(shí)間快速拋棄當(dāng)前分鐘的數(shù)據(jù),讓各處理節(jié)點(diǎn)同步到下一分鐘的處理。

通過(guò)以上在處理節(jié)點(diǎn)重啟前后的一系列操作,避免了節(jié)點(diǎn)重啟而導(dǎo)致的數(shù)據(jù)處理中斷可能給用戶感知帶來(lái)的影響,提升了用戶的使用體驗(yàn)。

為達(dá)到以上技術(shù)目的,本申請(qǐng)還提出了一種數(shù)據(jù)處理設(shè)備,作為處理節(jié)點(diǎn)應(yīng)用于包括分布式消息隊(duì)列以及所述處理節(jié)點(diǎn)的數(shù)據(jù)處理系統(tǒng)中,如圖4所示,該數(shù)據(jù)處理設(shè)備包括:

獲取模塊,用于當(dāng)重新啟動(dòng)完成后,獲取所述分布式消息隊(duì)列中當(dāng)前緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)的時(shí)刻;

確定模塊,用于根據(jù)當(dāng)前的時(shí)刻以及所述遺留數(shù)據(jù)的時(shí)刻確定恢復(fù)周期;

處理模塊,用于在所述恢復(fù)周期內(nèi)處理所述遺留數(shù)據(jù)以及所述分布式消息隊(duì)列中的新增數(shù)據(jù)。

在優(yōu)選的實(shí)施例中,所述數(shù)據(jù)處理系統(tǒng)還包括存儲(chǔ)節(jié)點(diǎn),所述數(shù)據(jù)處理設(shè)備還包括:

關(guān)閉模塊,用于接收計(jì)算任務(wù)關(guān)閉指令,停止從所述分布式消息隊(duì)列中接收數(shù)據(jù),并將自身當(dāng)前已緩存的數(shù)據(jù)在處理完畢后寫入所述存儲(chǔ)節(jié)點(diǎn)。

在優(yōu)選的實(shí)施例中,所述確定模塊具體包括:

獲取子模塊,獲取所述緩存時(shí)間最長(zhǎng)的遺留數(shù)據(jù)所對(duì)應(yīng)的時(shí)刻距離當(dāng)前的時(shí)刻的時(shí)間長(zhǎng)度;

生成子模塊,生成所述恢復(fù)周期,所述恢復(fù)周期的時(shí)長(zhǎng)與所述時(shí)間長(zhǎng)度一致。

在優(yōu)選的實(shí)施例中,所述處理模塊具體包括:

設(shè)置子模塊,根據(jù)所述恢復(fù)周期的單位時(shí)間長(zhǎng)度依次設(shè)置多個(gè)處理時(shí)間段,并基于所述遺留數(shù)據(jù)以及所述新增數(shù)據(jù)為各所述處理時(shí)間段分配待處理數(shù)據(jù);

處理子模塊,在各所述處理時(shí)間段內(nèi)處理對(duì)應(yīng)的待處理數(shù)據(jù);

恢復(fù)子模塊,所述恢復(fù)周期結(jié)束后將所述計(jì)算任務(wù)恢復(fù)為正常處理邏輯。

在優(yōu)選的實(shí)施例中,所述處理時(shí)間段由數(shù)據(jù)處理時(shí)間以及數(shù)據(jù)同步時(shí)間按序組成,所述處理子模塊具體為:

在所述數(shù)據(jù)處理時(shí)間內(nèi)處理所述待處理數(shù)據(jù),并在所述數(shù)據(jù)處理時(shí)間結(jié)束時(shí)將已處理的待處理數(shù)據(jù)進(jìn)行存儲(chǔ);

若所述數(shù)據(jù)處理時(shí)間結(jié)束后存在尚未處理的待處理數(shù)據(jù),在所述數(shù)據(jù)同步時(shí)間內(nèi)將所述尚未處理的待處理數(shù)據(jù)丟棄。

通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過(guò)硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施場(chǎng)景所述的方法。

本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場(chǎng)景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。

本領(lǐng)域技術(shù)人員可以理解實(shí)施場(chǎng)景中的裝置中的模塊可以按照實(shí)施場(chǎng)景描述進(jìn)行分布于實(shí)施場(chǎng)景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場(chǎng)景的一個(gè)或多個(gè)裝置中。上述實(shí)施場(chǎng)景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。

上述本發(fā)明序號(hào)僅僅為了描述,不代表實(shí)施場(chǎng)景的優(yōu)劣。

以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施場(chǎng)景,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1