實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法及系統(tǒng)。
【背景技術(shù)】
[0002]在web2.0時代,每一個用戶都可以生成自己的內(nèi)容,互聯(lián)網(wǎng)上的所有內(nèi)容可由用戶創(chuàng)造,而不只是以前的某一些人,使得互聯(lián)網(wǎng)內(nèi)容飛速增長。UGC(User GeneratedContent,用戶原創(chuàng)內(nèi)容)系統(tǒng)即是可為每個訪問用戶生成其私有數(shù)據(jù)的系統(tǒng)。
[0003]UGC的概念起源于互聯(lián)網(wǎng)領(lǐng)域,即用戶將自己原創(chuàng)的內(nèi)容通過互聯(lián)網(wǎng)平臺進(jìn)行展示或者提供給其他用戶。UGC并不是某一種具體的業(yè)務(wù),而是一種用戶使用互聯(lián)網(wǎng)的新方式,使得互聯(lián)網(wǎng)使用方式由原來的以下載為主變成以下載/上傳并重。YouTube、社交網(wǎng)絡(luò)、博客和播客等都是UGC系統(tǒng)的主要應(yīng)用形式。
[0004]如圖1所示,現(xiàn)有的UGC系統(tǒng)通常包括對外服務(wù)器和對內(nèi)服務(wù)器。其中,對外服務(wù)器是一個高可用、高穩(wěn)定性、高性能的服務(wù)器,用于直接為外網(wǎng)用戶提供業(yè)務(wù),該服務(wù)器每秒處理著大量的用戶請求,而處理這些用戶請求的對外服務(wù)數(shù)據(jù)都為UGC數(shù)據(jù),即僅與當(dāng)前訪問用戶相關(guān)。對外服務(wù)器可將這些用戶請求對應(yīng)的UGC數(shù)據(jù)緩存到一個高速的對外數(shù)據(jù)空間(內(nèi)存服務(wù)),但該對外數(shù)據(jù)空間對于批量讀寫數(shù)據(jù)的支持較差。對內(nèi)服務(wù)器是一個面向系統(tǒng)管理員的服務(wù)器,通常作用為將同步得到的大量用戶數(shù)據(jù)遍歷展示出來,便于管理員查看和管理用戶數(shù)據(jù)。通常對內(nèi)服務(wù)器的請求量較小,不需要太高的性能,但需具備遍歷大量用戶數(shù)據(jù)的能力,通常可通過配置有一個能夠支持遍歷大量存儲數(shù)據(jù)的對內(nèi)數(shù)據(jù)空間(如MySQL)實現(xiàn)。
[0005]通常在一些放量比較大的UGC系統(tǒng)中,需對對外服務(wù)產(chǎn)生的UGC數(shù)據(jù)進(jìn)行數(shù)據(jù)同步,將對外服務(wù)產(chǎn)生的對外服務(wù)數(shù)據(jù)同步到對內(nèi)服務(wù)數(shù)據(jù)庫中,管理人員通過對內(nèi)服務(wù)數(shù)據(jù)庫可查看和管理用戶數(shù)據(jù),進(jìn)而實現(xiàn)網(wǎng)站管理和維護(hù)。為了將對外服務(wù)產(chǎn)生的UGC數(shù)據(jù)同步到對內(nèi)服務(wù)數(shù)據(jù)庫,同時又不影響對外服務(wù)器的對外服務(wù)性能,現(xiàn)有的做法為:通過一個消息中間件(message oriented middleware)和對內(nèi)服務(wù)器,將對外服務(wù)產(chǎn)生的UGC數(shù)據(jù)以異步方式同步到對內(nèi)服務(wù)數(shù)據(jù)庫,管理人員通過對內(nèi)服務(wù)器訪問對內(nèi)服務(wù)數(shù)據(jù)庫,遍歷所述對內(nèi)服務(wù)數(shù)據(jù)庫中的同步數(shù)據(jù)查看和管理大量用戶數(shù)據(jù),實現(xiàn)網(wǎng)站管理和維護(hù)。
[0006]然而,基于這種數(shù)據(jù)同步方式,對消息中間件的可靠性的要求較高,一旦出現(xiàn)消息中間件丟消息(由于網(wǎng)絡(luò)波動等因素導(dǎo)致),或者對內(nèi)服務(wù)器BUG導(dǎo)致沒能及時處理好消息中間件發(fā)送的對外服務(wù)數(shù)據(jù)的情況,將導(dǎo)致對外服務(wù)產(chǎn)生的對外服務(wù)數(shù)據(jù)無法可靠的同步到對內(nèi)數(shù)據(jù)空間中,即數(shù)據(jù)同步丟失,且這種情況導(dǎo)致的數(shù)據(jù)丟失,無法通過對內(nèi)服務(wù)器進(jìn)行修復(fù)。
【發(fā)明內(nèi)容】
[0007]基于此,本發(fā)明提供一種實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法及系統(tǒng),便于發(fā)現(xiàn)同步數(shù)據(jù)中丟失的數(shù)據(jù),并快速修復(fù)丟失的數(shù)據(jù),降低對消息中間件的依賴性。
[0008]本發(fā)明采用以下技術(shù)方案:
[0009]本發(fā)明一方面提供一種實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法,包括:
[0010]獲取產(chǎn)生的對外服務(wù)數(shù)據(jù),生成所述對外服務(wù)數(shù)據(jù)對應(yīng)的日志記錄;
[0011 ]比較所述日志記錄與對內(nèi)服務(wù)數(shù)據(jù)庫,判斷所述對內(nèi)服務(wù)數(shù)據(jù)庫是否存在數(shù)據(jù)丟失;
[0012]如果存在數(shù)據(jù)丟失,根據(jù)所述日志記錄修復(fù)所述對內(nèi)服務(wù)數(shù)據(jù)庫中的同步數(shù)據(jù)。
[0013]本發(fā)明另一方面提供一種分布式實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的系統(tǒng),包括:
[0014]日志生成模塊,用于獲取產(chǎn)生的對外服務(wù)數(shù)據(jù),生成所述對外服務(wù)數(shù)據(jù)對應(yīng)的日志記錄;
[0015]日志分析模塊,用于比較所述日志記錄與對內(nèi)服務(wù)數(shù)據(jù)庫,判斷對內(nèi)服務(wù)數(shù)據(jù)庫是否存在數(shù)據(jù)丟失;
[0016]以及,修復(fù)模塊,用于如果存在數(shù)據(jù)丟失,根據(jù)所述日志記錄修復(fù)所述對內(nèi)服務(wù)數(shù)據(jù)庫中的同步數(shù)據(jù)。
[0017]實施本發(fā)明的上述技術(shù)方案的有益效果包括:通過獲取產(chǎn)生的對外服務(wù)數(shù)據(jù),生成所述對外服務(wù)數(shù)據(jù)對應(yīng)的日志記錄;基于該日志記錄,通過所述日志記錄與對內(nèi)服務(wù)數(shù)據(jù)庫的比較,可及時發(fā)現(xiàn)對內(nèi)服務(wù)數(shù)據(jù)庫(同步數(shù)據(jù))是否存在丟失的數(shù)據(jù);如果存在丟失的數(shù)據(jù),可根據(jù)所述日志記錄修復(fù)對內(nèi)服務(wù)數(shù)據(jù)庫中的同步數(shù)據(jù)。降低了同步數(shù)據(jù)對消息中間件的依賴性,便于及時發(fā)現(xiàn)對內(nèi)服務(wù)數(shù)據(jù)庫中丟失的數(shù)據(jù),并快速修復(fù)丟失的數(shù)據(jù)。
【附圖說明】
[0018]圖1為現(xiàn)有的UGC系統(tǒng)中對外服務(wù)數(shù)據(jù)同步處理的邏輯框架示意圖;
[0019]圖2為本發(fā)明實施例的實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法的流程示意圖;
[0020]圖3為實施本發(fā)明實施例中對外服務(wù)數(shù)據(jù)同步處理的邏輯框架示意圖;
[0021]圖4為本發(fā)明實施例的實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的系統(tǒng)的邏輯結(jié)構(gòu)示意圖;
[0022]圖5為本發(fā)明另一實施例的分布式實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的系統(tǒng)的邏輯結(jié)構(gòu)示意圖。
【具體實施方式】
[0023]為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0024]本發(fā)明提供的實施例包括實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法實施例,還包括實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的系統(tǒng)實施例。以下分別進(jìn)行詳細(xì)說明。
[0025]圖2為本發(fā)明實施例的實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法的流程示意圖。參閱圖2,本實施例的實現(xiàn)系統(tǒng)中同步數(shù)據(jù)修復(fù)的方法包含以下步驟SlOl至步驟S103,詳細(xì)說明如下:
[0026]步驟SlOl,獲取產(chǎn)生的對外服務(wù)數(shù)據(jù),生成所述對外服務(wù)數(shù)據(jù)對應(yīng)的日志記錄;
[0027]本實施例中所說的對外服務(wù)指的是面向用戶的業(yè)務(wù),對內(nèi)服務(wù)指的是面向系統(tǒng)管理員的業(yè)務(wù)。通常情況下,用戶訪問UGC系統(tǒng)時,會產(chǎn)生相應(yīng)的對外服務(wù)數(shù)據(jù)。該對外服務(wù)數(shù)據(jù)均為UGC數(shù)據(jù),即用戶訪問系統(tǒng)時產(chǎn)生的私有數(shù)據(jù),只與當(dāng)前用戶自己有關(guān),如當(dāng)前用戶在系統(tǒng)中的頭像、昵稱、性別等數(shù)據(jù)。
[0028]本實施例中,可在UGC系統(tǒng)中預(yù)設(shè)一新的日志類型,即業(yè)務(wù)日志,業(yè)務(wù)日志中的每一條日志記錄都對應(yīng)了詳細(xì)的UGC數(shù)據(jù)。不同用戶訪問系統(tǒng)時產(chǎn)生的對外服務(wù)數(shù)據(jù),可通過不同的業(yè)務(wù)日志進(jìn)行記錄,同一用戶多次訪問對外服務(wù)器產(chǎn)生的對外服務(wù)數(shù)據(jù),可通過業(yè)務(wù)日志中不同的日志記錄予以記錄。同時在UGC系統(tǒng)中,對外服務(wù)產(chǎn)生新的UGC數(shù)據(jù)之后,將所述UGC數(shù)據(jù)緩存到對應(yīng)的對外數(shù)據(jù)空間,并且通過上述步驟SlOl,若獲取到對外服務(wù)產(chǎn)生的一UGC數(shù)據(jù),還會在系統(tǒng)中預(yù)設(shè)的業(yè)務(wù)日志中生成一條與所述UGC數(shù)據(jù)對應(yīng)的日志記錄。
[0029]需要說明的是,本實施例對業(yè)務(wù)日志的屬性和日志記錄格式不作限定,可根據(jù)系統(tǒng)情況進(jìn)行適應(yīng)性設(shè)置。
[0030]步驟S102,比較所述日志記錄與對內(nèi)服務(wù)數(shù)據(jù)庫,判斷所述對內(nèi)服務(wù)數(shù)據(jù)庫是否存在數(shù)據(jù)丟失;
[0031]這里的對內(nèi)服務(wù)數(shù)據(jù)庫指的是,用于存儲對外服務(wù)產(chǎn)生的對外服務(wù)數(shù)據(jù)的同步數(shù)據(jù)的存儲空間,對內(nèi)服務(wù)數(shù)據(jù)庫主要用于對內(nèi)服務(wù)業(yè)務(wù)(例如管理用戶數(shù)據(jù)或者用戶