基于的分布式文件系統(tǒng)的架構(gòu)示意圖,如圖1所示,該分布式文件系統(tǒng)包括:用戶終端11和多個服務(wù)器12 ;其中,多個服務(wù)器12可以共同構(gòu)成一個集群,每個服務(wù)器12在集群中可以稱之為節(jié)點。另外,在集群中,至少兩個服務(wù)器12之間能互相正常通信,從而有效地保證了集群的穩(wěn)定性。
[0037]圖2為本發(fā)明數(shù)據(jù)處理方法的實施例一的流程圖,應(yīng)用于圖1所示的分布式系統(tǒng)中,如圖2所示,該方法可以由用戶終端執(zhí)行,則該方法包括:
[0038]步驟101、分別向至少兩個服務(wù)器發(fā)送訂閱消息。
[0039]步驟102、接收至少兩個服務(wù)器發(fā)送的數(shù)據(jù)更新消息,并將該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號與本地存儲的數(shù)據(jù)的版本號進(jìn)行比較;若比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號大于該本地存儲的數(shù)據(jù)的版本號,則執(zhí)行步驟103 ;若比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號小于或等于該本地存儲的數(shù)據(jù)的版本號,則執(zhí)行步驟104。
[0040]步驟103、存儲該數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除該本地存儲的數(shù)據(jù)。結(jié)束。
[0041]步驟104、刪除該數(shù)據(jù)更新消息。
[0042]在本實施例中,舉例來說,以服務(wù)器數(shù)量為N個為例,詳細(xì)介紹本實施例的技術(shù)方案,其中,N為正整數(shù),且大于或等于3。具體的,用戶終端分別向至少lN/2+ll個服務(wù)器發(fā)送訂閱消息;其中,該至少lN/2+ll個服務(wù)器之間能互相通信。另外,集群中的服務(wù)器若接收到用戶終端發(fā)送的訂閱消息后,則會在數(shù)據(jù)發(fā)生變化后,就會主動推送更新后的數(shù)據(jù)給用戶終端,以保證用戶終端能夠同步獲得更新的數(shù)據(jù)。另外,由于用戶終端可以接收到至少IN/2+11個服務(wù)器發(fā)送的數(shù)據(jù)更新消息,因此,用戶終端需要比較該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號與本地存儲的數(shù)據(jù)的版本號,以保證用戶終端接收到的更新后的數(shù)據(jù)是最新的。
[0043]本實施例,通過用戶終端分別向至少兩個服務(wù)器發(fā)送訂閱消息,并在接收至少兩個服務(wù)器發(fā)送的數(shù)據(jù)更新消息后,將數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號與本地存儲的數(shù)據(jù)的版本號進(jìn)行比較;若比較出數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號大于本地存儲的數(shù)據(jù)的版本號,則存儲數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除本地存儲的數(shù)據(jù),或者,若比較出數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號小于或等于本地存儲的數(shù)據(jù)的版本號,則刪除數(shù)據(jù)更新消息;由于用戶終端同時向至少兩個服務(wù)器發(fā)送訂閱消息,相較于現(xiàn)有技術(shù)中用戶終端獲取數(shù)據(jù)可能存在時延而言,本發(fā)明有效地保證了用戶終端能夠及時獲取最新的數(shù)據(jù)。
[0044]下面采用幾個具體的實施例,對圖2所示方法實施例的技術(shù)方案進(jìn)行詳細(xì)說明。
[0045]圖3為本發(fā)明數(shù)據(jù)處理方法的實施例二的流程圖,如圖3所示,在上述圖2所示實施例的基礎(chǔ)上,本實施例的方法還進(jìn)一步包括:
[0046]步驟201、分別向至少兩個服務(wù)器發(fā)送心跳檢測消息;
[0047]步驟202、若在預(yù)設(shè)時間沒有接收該至少兩個服務(wù)器中的一個或多個服務(wù)器的心跳反饋消息,則確認(rèn)該一個或多個服務(wù)器故障,并向該至少兩個服務(wù)器之外的其他服務(wù)器發(fā)送訂閱消息,以保證能夠接收至少兩個服務(wù)器發(fā)送的數(shù)據(jù)更新消息。
[0048]在本實施例中,當(dāng)訂閱的至少兩個服務(wù)器中某一個或多個服務(wù)器出現(xiàn)故障時,則進(jìn)行服務(wù)器替換,即實現(xiàn)替換非脫離集群的服務(wù)器,以保證至少兩個服務(wù)器向用戶終端返回數(shù)據(jù)更新消息,從而更為有效地保證了用戶終端能夠?qū)崟r獲取最新的數(shù)據(jù)。
[0049]圖4為本發(fā)明數(shù)據(jù)處理方法的實施例三的流程圖,應(yīng)用于圖1所示的分布式系統(tǒng)中,如圖4所示,該方法可以由服務(wù)器執(zhí)行,則該方法包括:
[0050]步驟301、接收所述用戶終端發(fā)送的至少兩個訂閱消息中一個訂閱消息。
[0051]在本實施例中,舉例來說,以N個服務(wù)器為例,其中,N為正整數(shù),且大于或等于3。則該用戶終端發(fā)送至少lN/2+ll個訂閱消息,且該服務(wù)器可以接收該至少lN/2+ll個訂閱消息中一個訂閱消息。
[0052]另外,在本實施例中,用戶終端可以執(zhí)行上述實施例一至實施例三任一方法的技術(shù)方案,其實現(xiàn)原理相類似,此處不再贅述。
[0053]步驟302、在本地數(shù)據(jù)更新后,將更新后的數(shù)據(jù)和對應(yīng)的版本號攜帶在數(shù)據(jù)更新消息中發(fā)送給該用戶終端,以供該用戶終端將該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號與本地存儲的數(shù)據(jù)的版本號進(jìn)行比較;并在比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號大于該本地存儲的數(shù)據(jù)的版本號時,存儲該數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除該本地存儲的數(shù)據(jù);或者,若比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號小于或等于該本地存儲的數(shù)據(jù)的版本號,則刪除該數(shù)據(jù)更新消息。
[0054]本實施例,通過用戶終端分別向至少兩個服務(wù)器發(fā)送訂閱消息,并在接收至少兩個服務(wù)器發(fā)送的數(shù)據(jù)更新消息后,將數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號與本地存儲的數(shù)據(jù)的版本號進(jìn)行比較;若比較出數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號大于本地存儲的數(shù)據(jù)的版本號,則存儲數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除本地存儲的數(shù)據(jù),或者,若比較出數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號小于或等于本地存儲的數(shù)據(jù)的版本號,則刪除數(shù)據(jù)更新消息;由于用戶終端同時向至少兩個服務(wù)器發(fā)送訂閱消息,相較于現(xiàn)有技術(shù)中用戶終端獲取數(shù)據(jù)可能存在時延而言,本發(fā)明有效地保證了用戶終端能夠及時獲取最新的數(shù)據(jù)。
[0055]圖5為本發(fā)明數(shù)據(jù)處理裝置的實施例一的結(jié)構(gòu)示意圖,如圖4所示,本實施例的裝置為用戶終端,應(yīng)用在圖1所示的分布式文件系統(tǒng)中,則該裝置可以包括:收發(fā)模塊21和處理模塊22,其中,收發(fā)模塊21用于分別向該多個服務(wù)器中的至少兩個服務(wù)器發(fā)送訂閱消息;收發(fā)模塊21還用于接收該至少兩個服務(wù)器發(fā)送的數(shù)據(jù)更新消息;處理模塊22用于將該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號與本地存儲的數(shù)據(jù)的版本號進(jìn)行比較;若比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號大于該本地存儲的數(shù)據(jù)的版本號,則存儲該數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除該本地存儲的數(shù)據(jù);或者,若比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號小于或等于該本地存儲的數(shù)據(jù)的版本號,則刪除該數(shù)據(jù)更新消息。
[0056]本實施例的裝置,可以用于執(zhí)行實施上述實施一或二所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0057]進(jìn)一步地,在本發(fā)明數(shù)據(jù)處理裝置實施例二中,在上述數(shù)據(jù)處理裝置實施例一的基礎(chǔ)上,該收發(fā)模塊11還用于分別向該至少兩個服務(wù)器發(fā)送心跳檢測消息;該處理模塊12還用于若在預(yù)設(shè)時間該收發(fā)模塊沒有接收該至少兩個服務(wù)器中的一個或多個服務(wù)器的心跳反饋消息,則確認(rèn)該一個或多個服務(wù)器故障;該收發(fā)模塊11還用于向該至少兩個服務(wù)器之外的其他服務(wù)器發(fā)送訂閱消息,以保證能夠接收至少兩個服務(wù)器發(fā)送的數(shù)據(jù)更新消息。
[0058]圖6為本發(fā)明數(shù)據(jù)處理裝置的實施例三的結(jié)構(gòu)示意圖,如圖6所示,本實施例的裝置設(shè)置在集群中,集群設(shè)置在圖1所示的分布式文件系統(tǒng)中;則該數(shù)據(jù)處理裝置可以包括:收發(fā)模塊31和處理模塊32 ;其中,收發(fā)模塊31用于接收該用戶終端發(fā)送的至少兩個訂閱消息中一個訂閱消息;處理模塊32用于在本地數(shù)據(jù)更新后,將更新后的數(shù)據(jù)和對應(yīng)的版本號攜帶在數(shù)據(jù)更新消息中發(fā)送給該用戶終端,以供該用戶終端將該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號與本地存儲的數(shù)據(jù)的版本號進(jìn)行比較;并在比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號大于該本地存儲的數(shù)據(jù)的版本號時,存儲該數(shù)據(jù)更新消息中的更新數(shù)據(jù),并刪除該本地存儲的數(shù)據(jù);或者,若比較出該數(shù)據(jù)更新消息中的更新數(shù)據(jù)的版本號小于或等于該本地存儲的數(shù)據(jù)的版本號,則刪除該數(shù)據(jù)更新消息。
[0059]本實施例的裝置,可以用于執(zhí)行圖4所示方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0060]圖7為本發(fā)明分布式文件系統(tǒng)的實施例一的結(jié)構(gòu)