數(shù)據(jù)處理方法和裝置,及分布式文件系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種數(shù)據(jù)處理方法和裝置,及分布式文件系統(tǒng)。
【背景技術(shù)】
[0002]目前,分布式文件系統(tǒng)主要包括:用戶終端和服務(wù)器(也可以稱之為服務(wù)器),其中,該服務(wù)器可以為存儲(chǔ)設(shè)備等,多個(gè)服務(wù)器共同構(gòu)成一個(gè)集群?,F(xiàn)有技術(shù)中用戶終端向集群中的節(jié)點(diǎn)(即上述的服務(wù)器)獲取數(shù)據(jù)的方法主要以訂閱數(shù)據(jù)的方式來(lái)實(shí)現(xiàn),具體的,用戶終端向集群內(nèi)某個(gè)節(jié)點(diǎn)發(fā)送訂閱消息,接收到該訂閱消息的節(jié)點(diǎn),在本地?cái)?shù)據(jù)發(fā)生變化后,會(huì)將變化后的數(shù)據(jù)發(fā)送給該用戶終端,從而使得該用戶終端能夠同步獲得最新的數(shù)據(jù)。
[0003]另外,用戶終端可以實(shí)時(shí)檢測(cè)該節(jié)點(diǎn)是否脫離集群,并在檢測(cè)到脫離集群后,需要重新發(fā)起訂閱消息給集群內(nèi)其他的節(jié)點(diǎn),以重新通過(guò)其他的節(jié)點(diǎn)獲取最新的數(shù)據(jù),以實(shí)現(xiàn)數(shù)據(jù)同步,因此,使得用戶終端在獲取最新數(shù)據(jù)時(shí)出現(xiàn)了一定的時(shí)延。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種數(shù)據(jù)處理方法和裝置,及分布式文件系統(tǒng),以克服現(xiàn)有技術(shù)中用戶終端在獲取最新數(shù)據(jù)時(shí)出現(xiàn)了一定的時(shí)延的問(wèn)題。
[0005]本發(fā)明實(shí)施例第一方面提供一種數(shù)據(jù)處理方法,應(yīng)用于分布式文件系統(tǒng),所述分布式文件系統(tǒng)包括用戶終端和多個(gè)服務(wù)器;其中,所述方法由所述用戶終端執(zhí)行,則所述方法包括:
[0006]分別向至少兩個(gè)服務(wù)器發(fā)送訂閱消息;
[0007]接收所述至少兩個(gè)服務(wù)器發(fā)送的數(shù)據(jù)更新消息,并將所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)與本地存儲(chǔ)的數(shù)據(jù)的版本號(hào)進(jìn)行比較;
[0008]若所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)大于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則存儲(chǔ)所述數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除所述本地存儲(chǔ)的數(shù)據(jù);或者,若比較出所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)小于或等于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則刪除所述數(shù)據(jù)更新消息。
[0009]在第一方面的第一種可能實(shí)現(xiàn)方式中,還包括:
[0010]分別向所述至少兩個(gè)服務(wù)器發(fā)送心跳檢測(cè)消息;
[0011]若在預(yù)設(shè)時(shí)間沒(méi)有接收所述至少兩個(gè)服務(wù)器中的一個(gè)或多個(gè)服務(wù)器的心跳反饋消息,則確認(rèn)所述一個(gè)或多個(gè)服務(wù)器故障,并向所述至少兩個(gè)服務(wù)器之外的其他服務(wù)器發(fā)送訂閱消息,以保證能夠接收至少兩個(gè)服務(wù)器發(fā)送的數(shù)據(jù)更新消息。
[0012]本發(fā)明實(shí)施例第二方面提供一種數(shù)據(jù)處理方法,應(yīng)用于分布式文件系統(tǒng),所述分布式文件系統(tǒng)包括用戶終端和多個(gè)服務(wù)器;其中,所述方法由所述服務(wù)器執(zhí)行,則所述方法包括:
[0013]接收所述用戶終端發(fā)送的至少兩個(gè)訂閱消息中一個(gè)訂閱消息;
[0014]在本地?cái)?shù)據(jù)更新后,將更新后的數(shù)據(jù)和對(duì)應(yīng)的版本號(hào)攜帶在數(shù)據(jù)更新消息中發(fā)送給所述用戶終端,以供所述用戶終端將所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)與本地存儲(chǔ)的數(shù)據(jù)的版本號(hào)進(jìn)行比較;并在比較出所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)大于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào)時(shí),存儲(chǔ)所述數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除所述本地存儲(chǔ)的數(shù)據(jù);或者,若比較出所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)小于或等于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則刪除所述數(shù)據(jù)更新消息。
[0015]本發(fā)明實(shí)施例第三方面提供一種數(shù)據(jù)處理裝置,設(shè)置在分布式文件系統(tǒng),所述分布式文件系統(tǒng)還包括:多個(gè)服務(wù)器,其中,所述數(shù)據(jù)處理裝置包括:
[0016]收發(fā)模塊,用于分別向所述多個(gè)服務(wù)器中的至少兩個(gè)服務(wù)器發(fā)送訂閱消息;
[0017]所述收發(fā)模塊還用于接收所述至少兩個(gè)服務(wù)器發(fā)送的數(shù)據(jù)更新消息;
[0018]處理模塊,用于將所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)與本地存儲(chǔ)的數(shù)據(jù)的版本號(hào)進(jìn)行比較;若比較出所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)大于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則存儲(chǔ)所述數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除所述本地存儲(chǔ)的數(shù)據(jù);或者,若比較出所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)小于或等于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則刪除所述數(shù)據(jù)更新消息。
[0019]在第三方面的第一種可能實(shí)現(xiàn)方式中,所述收發(fā)模塊還用于分別向所述至少兩個(gè)服務(wù)器發(fā)送心跳檢測(cè)消息;
[0020]所述處理模塊還用于若在預(yù)設(shè)時(shí)間所述收發(fā)模塊沒(méi)有接收所述至少兩個(gè)服務(wù)器中的一個(gè)或多個(gè)服務(wù)器的心跳反饋消息,則確認(rèn)所述一個(gè)或多個(gè)服務(wù)器故障;
[0021]所述收發(fā)模塊還用于向所述至少兩個(gè)服務(wù)器之外的其他服務(wù)器發(fā)送訂閱消息,以保證能夠接收至少兩個(gè)服務(wù)器發(fā)送的數(shù)據(jù)更新消息。
[0022]本發(fā)明實(shí)施例第四方面提供一種數(shù)據(jù)處理裝置,設(shè)置在所述分布式文件系統(tǒng)中,所述分布式文件系統(tǒng)還包括:用戶終端,其中,所述數(shù)據(jù)處理裝置包括:
[0023]收發(fā)模塊,用于接收所述用戶終端發(fā)送的至少兩個(gè)訂閱消息中一個(gè)訂閱消息;
[0024]處理模塊,用于在本地?cái)?shù)據(jù)更新后,將更新后的數(shù)據(jù)和對(duì)應(yīng)的版本號(hào)攜帶在數(shù)據(jù)更新消息中發(fā)送給所述用戶終端,以供所述用戶終端將所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)與本地存儲(chǔ)的數(shù)據(jù)的版本號(hào)進(jìn)行比較;并在比較出所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)大于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào)時(shí),存儲(chǔ)所述數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除所述本地存儲(chǔ)的數(shù)據(jù);或者,若比較出所述數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)小于或等于所述本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則刪除所述數(shù)據(jù)更新消息。
[0025]本發(fā)明實(shí)施例第五方面提供一種分布式文件系統(tǒng),其中,包括:用戶終端和多個(gè)服務(wù)器;其中,所述用戶終端為如上述第三方面所述的數(shù)據(jù)處理裝置;所述服務(wù)器為如上述第四面所述的數(shù)據(jù)處理裝置。
[0026]本發(fā)明實(shí)施例數(shù)據(jù)處理方法和裝置,及分布式文件系統(tǒng),通過(guò)用戶終端分別向至少兩個(gè)服務(wù)器發(fā)送訂閱消息,并在接收至少兩個(gè)服務(wù)器發(fā)送的數(shù)據(jù)更新消息后,將數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)與本地存儲(chǔ)的數(shù)據(jù)的版本號(hào)進(jìn)行比較;若比較出數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)大于本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則存儲(chǔ)數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除本地存儲(chǔ)的數(shù)據(jù),或者,若比較出數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號(hào)小于或等于本地存儲(chǔ)的數(shù)據(jù)的版本號(hào),則刪除數(shù)據(jù)更新消息;由于用戶終端同時(shí)向至少兩個(gè)服務(wù)器發(fā)送訂閱消息,相較于現(xiàn)有技術(shù)中用戶終端獲取數(shù)據(jù)可能存在時(shí)延而言,本發(fā)明有效地保證了用戶終端能夠及時(shí)獲取最新的數(shù)據(jù)。
【附圖說(shuō)明】
[0027]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0028]圖1為本發(fā)明數(shù)據(jù)處理方法的所基于的分布式文件系統(tǒng)的架構(gòu)示意圖;
[0029]圖2為本發(fā)明數(shù)據(jù)處理方法的實(shí)施例一的流程圖;
[0030]圖3為本發(fā)明數(shù)據(jù)處理方法的實(shí)施例二的流程圖;
[0031]圖4為本發(fā)明數(shù)據(jù)處理方法的實(shí)施例三的流程圖;
[0032]圖5為本發(fā)明數(shù)據(jù)處理裝置的實(shí)施例一的結(jié)構(gòu)示意圖;
[0033]圖6為本發(fā)明數(shù)據(jù)處理裝置的實(shí)施例三的結(jié)構(gòu)示意圖;
[0034]圖7為本發(fā)明分布式文件系統(tǒng)的實(shí)施例一的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0035]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0036]圖1為本發(fā)明數(shù)據(jù)處理方法的所