專利名稱:一種內(nèi)容分發(fā)cdn子系統(tǒng)以及數(shù)據(jù)同步的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用于IPTV系統(tǒng)中的內(nèi)容分發(fā)CDN子系 統(tǒng)以及數(shù)據(jù)同步的方法。
背景技術(shù):
交互式網(wǎng)絡(luò)電視(Internet Protocol Television,簡(jiǎn)稱為IPTV)是一種利用寬帶 有線電視網(wǎng)向家庭用戶提供包括數(shù)字電視在內(nèi)的多種交互式服務(wù)的技術(shù),其充分利用了電 視網(wǎng)、互聯(lián)網(wǎng)、多媒體等資源和技術(shù)來(lái)為用戶提供交互式電視服務(wù)。IPTV將逐漸替代現(xiàn)有的 模擬電視和數(shù)字電視,成為電視行業(yè)的發(fā)展趨勢(shì)。內(nèi)容分發(fā)(Content Delivery Network,CDN)子系統(tǒng)是IPTV系統(tǒng)中最重要的子系 統(tǒng)之一,其負(fù)責(zé)整個(gè)IPTV系統(tǒng)所有業(yè)務(wù)的調(diào)度、分發(fā)、服務(wù)、管理?,F(xiàn)有技術(shù)IPTV中的⑶N 子系統(tǒng)中主要包括⑶N管理模塊、⑶N節(jié)點(diǎn)(包括⑶N代理管理模塊和業(yè)務(wù)服務(wù)模塊)、存 儲(chǔ)模塊和數(shù)據(jù)庫(kù)模塊,CDN子系統(tǒng)具體結(jié)構(gòu)如圖1A所示,其中⑶N管理模塊用于從整體上對(duì)⑶N子系統(tǒng)的資源進(jìn)行調(diào)度、分發(fā)。并且該⑶N管理 模塊包括業(yè)務(wù)控制模塊、網(wǎng)絡(luò)管理模塊、和數(shù)據(jù)同步模塊。⑶N節(jié)點(diǎn)通常是根據(jù)用戶的地理位置來(lái)配備的,它是一個(gè)為用戶提供服務(wù)的邏輯 單位,主要由⑶N代理管理模塊和業(yè)務(wù)服務(wù)模塊組成。存儲(chǔ)模塊作為數(shù)據(jù)同步的中轉(zhuǎn)站,用來(lái)臨時(shí)存儲(chǔ)⑶N管理模塊與⑶N代理管理模 塊間同步的數(shù)據(jù)信息。數(shù)據(jù)庫(kù)模塊主要用于存放IPTV系統(tǒng)中所有業(yè)務(wù)的數(shù)據(jù)和CDN子系統(tǒng)的系統(tǒng)資源。隨著IPTV系統(tǒng)用戶數(shù)和節(jié)目?jī)?nèi)容數(shù)的急速膨脹,系統(tǒng)同步的數(shù)據(jù)量越來(lái)越多,現(xiàn) 有技術(shù)中把數(shù)據(jù)同步模塊集成在業(yè)務(wù)層(如圖1所示),每次同步數(shù)據(jù)的具體實(shí)現(xiàn)步驟包 括步驟101、⑶N節(jié)點(diǎn)⑶N代理服務(wù)器中的數(shù)據(jù)同步模塊向⑶N管理模塊中的數(shù)據(jù)同 步模塊發(fā)送數(shù)據(jù)同步請(qǐng)求;CDN管理模塊中的數(shù)據(jù)同步模塊接收數(shù)據(jù)同步請(qǐng)求;步驟102、CDN管理模塊中的數(shù)據(jù)同步模塊接收數(shù)據(jù)同步請(qǐng)求后,向數(shù)據(jù)庫(kù)發(fā)起獲 取全量數(shù)據(jù)請(qǐng)求,并將獲取到的全量數(shù)據(jù)打包,上傳至存儲(chǔ)模塊;步驟103、⑶N代理服務(wù)器中的數(shù)據(jù)同步模塊從存儲(chǔ)下載打包的全量數(shù)據(jù),并解析 所述打包的全量數(shù)據(jù)。根據(jù)上述步驟可知每次同步數(shù)據(jù)都需從數(shù)據(jù)庫(kù)中獲取大量數(shù)據(jù)導(dǎo)致數(shù)據(jù)庫(kù)效率 低下,顯然在系統(tǒng)同步的數(shù)據(jù)量越來(lái)越多的情況下,上述數(shù)據(jù)同步的方法已經(jīng)不能滿足系 統(tǒng)要求。另外,還會(huì)給系統(tǒng)同步帶來(lái)一定的不可靠性。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種內(nèi)容分發(fā)CDN子系統(tǒng)以及數(shù)據(jù)同步的方法,克服現(xiàn)有技術(shù) 中采用每次同步從數(shù)據(jù)庫(kù)中獲取全部數(shù)據(jù),并且使用單一存儲(chǔ)模塊而引起數(shù)據(jù)庫(kù)效率、影響系統(tǒng)可靠性的問(wèn)題。本發(fā)明實(shí)施例提供一種內(nèi)容分發(fā)網(wǎng)⑶N,包括⑶N管理模塊、存儲(chǔ)模塊和數(shù)據(jù)庫(kù)模 塊,還包括CDN節(jié)點(diǎn),用于發(fā)起數(shù)據(jù)同步請(qǐng)求,并根據(jù)接收到的同步數(shù)據(jù)通知消息,從存儲(chǔ)模 塊獲取同步數(shù)據(jù)文件;數(shù)據(jù)同步服務(wù)器,用于接收所述CDN節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步請(qǐng)求,根據(jù)所述數(shù)據(jù)同 步請(qǐng)求從數(shù)據(jù)庫(kù)模塊獲取全量數(shù)據(jù)或者增量數(shù)據(jù)并存入內(nèi)存,根據(jù)內(nèi)存數(shù)據(jù)生成數(shù)據(jù)文件 發(fā)送至存儲(chǔ)模塊,以及向所述CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息。所述數(shù)據(jù)同步服務(wù)器包括多個(gè),其中,當(dāng)所述CDN節(jié)點(diǎn)發(fā)送數(shù)據(jù)同步請(qǐng)求失敗時(shí), 從未請(qǐng)求同步的其它數(shù)據(jù)同步服務(wù)器中選取一個(gè)可用的數(shù)據(jù)同步服務(wù)器再次發(fā)送數(shù)據(jù)同 步請(qǐng)求,如果沒(méi)有可用的數(shù)據(jù)同步服務(wù)器,則發(fā)出告警。另外,該內(nèi)容分發(fā)CDN子系統(tǒng)還包括多個(gè)存儲(chǔ)模塊;則所述數(shù)據(jù)同步服務(wù)器還用于在向所述⑶N節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息之前,將生 成的數(shù)據(jù)文件打包,并從所述多個(gè)存儲(chǔ)模塊中選擇任意一個(gè)存儲(chǔ)模塊,將打包后的數(shù)據(jù)文 件發(fā)送到選擇的存儲(chǔ)模塊。所述數(shù)據(jù)同步服務(wù)器包括多個(gè),其中,當(dāng)CDN節(jié)點(diǎn)發(fā)起數(shù)據(jù)同步請(qǐng)求時(shí),CDN節(jié)點(diǎn) 的歸屬數(shù)據(jù)同步服務(wù)器接收CDN節(jié)點(diǎn)發(fā)起的數(shù)據(jù)同步請(qǐng)求;則所述CDN節(jié)點(diǎn)還用于如果向所述歸屬數(shù)據(jù)同步服務(wù)器發(fā)送數(shù)據(jù)同步請(qǐng)求失敗, 則從所述多個(gè)數(shù)據(jù)同步服務(wù)器中的其它數(shù)據(jù)同步服務(wù)器中選取一個(gè)可用的數(shù)據(jù)同步服務(wù) 器再次發(fā)送數(shù)據(jù)同步請(qǐng)求,如果沒(méi)有可用的數(shù)據(jù)同步服務(wù)器,則發(fā)出告警。當(dāng)內(nèi)容分發(fā)網(wǎng)⑶N中包括一個(gè)數(shù)據(jù)同步服務(wù)器和一個(gè)存儲(chǔ)模塊時(shí),基于所述內(nèi)容 分發(fā)網(wǎng)CDN的數(shù)據(jù)同步方法,包括數(shù)據(jù)同步服務(wù)器接收CDN節(jié)點(diǎn)發(fā)起的數(shù)據(jù)同步請(qǐng)求后,返回?cái)?shù)據(jù)同步響應(yīng)消息;根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊中獲取增量數(shù)據(jù),并根據(jù)自身存儲(chǔ)的數(shù)據(jù)和 獲取的增量數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)文件并發(fā)送至存儲(chǔ)模塊;向所述CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息,通知CDN節(jié)點(diǎn)從所述存儲(chǔ)模塊獲取所述 數(shù)據(jù)文件。當(dāng)內(nèi)容分發(fā)網(wǎng)CDN中包括多個(gè)數(shù)據(jù)同步服務(wù)器和多個(gè)存儲(chǔ)模塊時(shí),基于該內(nèi)容分 發(fā)網(wǎng)⑶N的數(shù)據(jù)同步方法,包括CDN節(jié)點(diǎn)對(duì)應(yīng)的歸屬數(shù)據(jù)同步服務(wù)器接收到CDN節(jié)點(diǎn)發(fā)起的數(shù)據(jù)同步請(qǐng)求后,返 回?cái)?shù)據(jù)同步響應(yīng)消息;根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊中獲取增量數(shù)據(jù),并根據(jù)自身存儲(chǔ)的數(shù)據(jù)和 獲取的增量數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)文件;數(shù)據(jù)同步服務(wù)器將生成的數(shù)據(jù)文件打包,從所述多個(gè)存儲(chǔ)模塊中選擇任意一個(gè)存 儲(chǔ)模塊,并將打包后數(shù)據(jù)文件上傳到選擇的存儲(chǔ)模塊;向CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息,通知CDN節(jié)點(diǎn)從所述選擇的存儲(chǔ)模塊獲取數(shù) 據(jù)文件。應(yīng)用本發(fā)明實(shí)施例所提供的方法的裝置,采用部署多個(gè)數(shù)據(jù)同步服務(wù)器和多個(gè)存 儲(chǔ)模塊,并且同步時(shí)從數(shù)據(jù)庫(kù)中獲取增量數(shù)據(jù)到數(shù)據(jù)同步服務(wù)器以減少數(shù)據(jù)量來(lái)減輕業(yè)務(wù)數(shù)據(jù)庫(kù)的負(fù)擔(dān),部署多個(gè)存儲(chǔ)模塊可以增加系統(tǒng)的可靠性。
圖1A現(xiàn)有技術(shù)中內(nèi)容分發(fā)網(wǎng)CDN子系統(tǒng)的結(jié)構(gòu)示意圖;圖1現(xiàn)有技術(shù)中數(shù)據(jù)同步的方法;圖2本發(fā)明實(shí)施例一種內(nèi)容分發(fā)CDN子系統(tǒng)的結(jié)構(gòu)示意圖;圖3本發(fā)明實(shí)施例中數(shù)據(jù)同步服務(wù)器的結(jié)構(gòu)示意;圖4圖本發(fā)明實(shí)施例(一)一種數(shù)據(jù)同步方法的流程圖;圖5本發(fā)明實(shí)施例(二)一種數(shù)據(jù)同步方法的流程圖;圖6在具體的應(yīng)用環(huán)境中,應(yīng)用實(shí)施例二提供的方法實(shí)現(xiàn)數(shù)據(jù)同步方法的流程 圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種內(nèi)容分發(fā)⑶N子系統(tǒng),包括⑶N管理模塊、存儲(chǔ)模塊和數(shù)據(jù) 庫(kù)模塊,還包括CDN節(jié)點(diǎn),用于發(fā)起數(shù)據(jù)同步請(qǐng)求,并根據(jù)接收到的同步數(shù)據(jù)通知消息,從 存儲(chǔ)模塊獲取同步數(shù)據(jù)文件;數(shù)據(jù)同步服務(wù)器,用于接收所述CDN節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步請(qǐng) 求,根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊獲取全量數(shù)據(jù)或者增量數(shù)據(jù)并存入內(nèi)存,根據(jù)內(nèi) 存數(shù)據(jù)生成數(shù)據(jù)文件發(fā)送至存儲(chǔ)模塊,以及向所述⑶N節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息。如圖2所示,本發(fā)明實(shí)施例提供的一種內(nèi)容分發(fā)網(wǎng)CDN具體包括⑶N管理模塊 201、⑶N節(jié)點(diǎn)202、存儲(chǔ)模塊203、數(shù)據(jù)庫(kù)模塊204和數(shù)據(jù)同步服務(wù)器205,其中CDN節(jié)點(diǎn)202,用于向數(shù)據(jù)同步服務(wù)器205發(fā)起數(shù)據(jù)同步請(qǐng)求,并在接收到數(shù)據(jù)同 步服務(wù)器發(fā)送的同步數(shù)據(jù)通知消息后,從存儲(chǔ)模塊203獲取同步數(shù)據(jù)文件;數(shù)據(jù)同步服務(wù)器205,用于在接收到來(lái)自CDN節(jié)點(diǎn)的數(shù)據(jù)同步請(qǐng)求后,從數(shù)據(jù)庫(kù) 模塊獲取全量數(shù)據(jù)或者增量數(shù)據(jù)并存入內(nèi)存,根據(jù)內(nèi)存數(shù)據(jù)生成數(shù)據(jù)文件發(fā)送至存儲(chǔ)模塊 203,向所述CDN節(jié)點(diǎn)202發(fā)送同步數(shù)據(jù)通知消息,該同步數(shù)據(jù)通知消息用于通知所述CDN 節(jié)點(diǎn)202從所述存儲(chǔ)模塊202獲取數(shù)據(jù)文件。為了緩解現(xiàn)有技術(shù)中單個(gè)數(shù)據(jù)同步集成于業(yè)務(wù)層給業(yè)務(wù)服務(wù)器和數(shù)據(jù)庫(kù)的同步 壓力,并且配置多個(gè)數(shù)據(jù)同步服務(wù)器可以給系統(tǒng)帶來(lái)更高的可靠性。在本發(fā)明實(shí)施例中,所 述數(shù)據(jù)同步服務(wù)器205包括多個(gè);當(dāng)所述CDN節(jié)點(diǎn)202發(fā)送數(shù)據(jù)同步請(qǐng)求失敗時(shí),從未請(qǐng)求同步的其它數(shù)據(jù)同步服 務(wù)器中選取一個(gè)可用的數(shù)據(jù)同步服務(wù)器再次發(fā)送數(shù)據(jù)同步請(qǐng)求,如果沒(méi)有可用的數(shù)據(jù)同步 服務(wù)器,則發(fā)出告警。其中,所述CDN節(jié)點(diǎn)202每次發(fā)起數(shù)據(jù)同步請(qǐng)求時(shí),首先先向歸屬的數(shù)據(jù)同步服務(wù) 器發(fā)送數(shù)據(jù)同步請(qǐng)求,如果失敗再向其它數(shù)據(jù)同步服務(wù)器發(fā)送數(shù)據(jù)同步請(qǐng)求。另外,作為數(shù)據(jù)同步的中轉(zhuǎn)站的存儲(chǔ)模塊203,用來(lái)臨時(shí)存儲(chǔ)數(shù)據(jù)同步服務(wù)器205 與CDN節(jié)點(diǎn)202間同步數(shù)據(jù)。因?yàn)橹灰幸粋€(gè)存儲(chǔ)模塊203狀態(tài)正常就能為系統(tǒng)提供存儲(chǔ) 中轉(zhuǎn)服務(wù),為了提高系統(tǒng)的可靠性。本發(fā)明實(shí)施例還設(shè)立多個(gè)存儲(chǔ)模塊203,則所述數(shù)據(jù)同步服務(wù)器205還用于在向所述⑶N節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息之 前,將生成的數(shù)據(jù)文件打包,并從所述多個(gè)存儲(chǔ)模塊203中選擇一個(gè)存儲(chǔ)模塊,將打包后的數(shù)據(jù)文件上傳到選擇的存儲(chǔ)模塊203,并向所述CDN節(jié)點(diǎn)202發(fā)送同步數(shù)據(jù)通知消息,該通 知消息用于通知所述CDN節(jié)點(diǎn)202從選擇的存儲(chǔ)模塊獲取數(shù)據(jù)文件。如圖3所示,所述數(shù)據(jù)同步服務(wù)器205包括數(shù)據(jù)同步單元301和存儲(chǔ)管理單元 302,其中所述數(shù)據(jù)同步單元301,用于接收來(lái)自CDN節(jié)點(diǎn)的數(shù)據(jù)同步請(qǐng)求后,從數(shù)據(jù)庫(kù)模塊 獲取全量或者增量數(shù)據(jù)并存入內(nèi)存,向CDN節(jié)點(diǎn)發(fā)送數(shù)據(jù)同步響應(yīng)消息,根據(jù)內(nèi)存數(shù)據(jù)生 成需要的數(shù)據(jù)文件,并將生成的數(shù)據(jù)文件打包;另外,為了保證每次數(shù)據(jù)同步請(qǐng)求時(shí)的增量數(shù)據(jù)的數(shù)據(jù)量最小化,所述數(shù)據(jù)同步 單元301還用于設(shè)的時(shí)間間隔定時(shí)從數(shù)據(jù)庫(kù)模塊獲取增量數(shù)據(jù)并存入內(nèi)存。存儲(chǔ)管理單元302,用于在數(shù)據(jù)同步時(shí),從所述多個(gè)存儲(chǔ)模塊中選擇選擇任意一個(gè) 存儲(chǔ)模塊,將打包后的數(shù)據(jù)文件發(fā)送到選擇的存儲(chǔ)模塊,并提供讀寫(xiě)存儲(chǔ)模塊的方法。如圖4所示,應(yīng)用上述實(shí)施例提供的內(nèi)容分發(fā)網(wǎng)⑶N,如果內(nèi)容分發(fā)網(wǎng)⑶N中設(shè)置 有一個(gè)數(shù)據(jù)同步服務(wù)器和一個(gè)存儲(chǔ)模塊,則本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)同步方法,該 方法具體包括步驟步驟401,歸屬數(shù)據(jù)同步服務(wù)器接收CDN節(jié)點(diǎn)發(fā)起的數(shù)據(jù)同步請(qǐng)求后,返回?cái)?shù)據(jù)同 步響應(yīng)消息;步驟402,根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊中獲取增量數(shù)據(jù),并根據(jù)自身存儲(chǔ) 的數(shù)據(jù)和獲取的增量數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)文件并發(fā)送至存儲(chǔ)模塊;步驟403,向所述⑶N節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息,通知⑶N節(jié)點(diǎn)從選擇的存儲(chǔ)模 塊獲取所述數(shù)據(jù)文件。如圖5所示,應(yīng)用上述實(shí)施例提供的內(nèi)容分發(fā)網(wǎng)⑶N,如果內(nèi)容分發(fā)網(wǎng)⑶N中設(shè)置 有多個(gè)數(shù)據(jù)同步服務(wù)器和多個(gè)存儲(chǔ)模塊,則本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)同步方法,該 方法具體包括步驟步驟501,歸屬數(shù)據(jù)同步服務(wù)器接收CDN節(jié)點(diǎn)發(fā)起的數(shù)據(jù)同步請(qǐng)求后,返回?cái)?shù)據(jù)同 步響應(yīng)消息;步驟502,根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊中獲取增量數(shù)據(jù),并根據(jù)自身存儲(chǔ) 的數(shù)據(jù)和獲取的增量數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)文件;步驟503,歸屬數(shù)據(jù)同步服務(wù)器將生成的數(shù)據(jù)文件打包,從所述多個(gè)存儲(chǔ)模塊中選 擇一個(gè)存儲(chǔ)模塊,將打包后數(shù)據(jù)文件上傳到選擇的存儲(chǔ)模塊;從所述多個(gè)存儲(chǔ)模塊中選擇一個(gè)存儲(chǔ)模塊包括,根據(jù)預(yù)設(shè)的特定算法從多個(gè)存儲(chǔ) 模塊中選擇任意一個(gè)。步驟504,向⑶N節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息,通知⑶N節(jié)點(diǎn)從所述選擇的存儲(chǔ)模 塊獲取數(shù)據(jù)文件。另外,為了保證每次數(shù)據(jù)同步請(qǐng)求時(shí)的增量數(shù)據(jù)的數(shù)據(jù)量最小化,在系統(tǒng)啟動(dòng)是 所述數(shù)據(jù)同步服務(wù)器還根據(jù)預(yù)設(shè)的時(shí)間間隔定時(shí)從數(shù)據(jù)庫(kù)模塊獲取增量數(shù)據(jù)并存入內(nèi)存。步驟505,如果數(shù)據(jù)同步服務(wù)器接收到CDN節(jié)點(diǎn)返回的從存儲(chǔ)模塊獲取同步數(shù)據(jù) 文件或者解析數(shù)據(jù)同步文件失敗的失敗結(jié)果碼,則根據(jù)所述失敗結(jié)果碼選擇其它可用存儲(chǔ) 模塊或通過(guò)業(yè)務(wù)數(shù)據(jù)庫(kù)查詢?nèi)繑?shù)據(jù)請(qǐng)求獲取全量數(shù)。如圖6所示,在具體的應(yīng)用環(huán)境中,應(yīng)用實(shí)施例二提供的方法實(shí)現(xiàn)數(shù)據(jù)同步時(shí),具
7體的實(shí)現(xiàn)方式可以是步驟601,CDN節(jié)點(diǎn)向所屬的歸屬數(shù)據(jù)同步服務(wù)器發(fā)送數(shù)據(jù)同步請(qǐng)求。其中,如果發(fā)送請(qǐng)求失敗,則從其它數(shù)據(jù)同步服務(wù)器中選取一個(gè)可用的數(shù)據(jù)同步 服務(wù)器再次發(fā)送數(shù)據(jù)同步請(qǐng)求。如果找不到可用數(shù)據(jù)同步服務(wù)器,則發(fā)出告警。步驟602,歸屬數(shù)據(jù)同步服務(wù)器收到CDN節(jié)點(diǎn)的數(shù)據(jù)同步請(qǐng)求后,發(fā)送請(qǐng)求回應(yīng)。步驟603,歸屬數(shù)據(jù)同步服務(wù)器通過(guò)業(yè)務(wù)數(shù)據(jù)庫(kù)查詢?cè)隽繑?shù)據(jù)。步驟604,業(yè)務(wù)數(shù)據(jù)庫(kù)返回增量數(shù)據(jù)。步驟605,數(shù)據(jù)同步服務(wù)器利用內(nèi)存中存儲(chǔ)的數(shù)據(jù)和獲取的增量數(shù)據(jù)生成數(shù)據(jù)同 步文件,并上傳到存儲(chǔ)模塊。由于數(shù)據(jù)同步服務(wù)器保存有大部分的同步數(shù)據(jù),所以每次同步只需要數(shù)據(jù)同步服 務(wù)器從數(shù)據(jù)庫(kù)獲取少量增量數(shù)據(jù),減少數(shù)據(jù)庫(kù)的訪問(wèn)壓力。上傳到存儲(chǔ)模塊之前,還通過(guò)預(yù)定的算法從多個(gè)存儲(chǔ)模塊中選擇一個(gè)存儲(chǔ)模塊, 將打包后的數(shù)據(jù)文件上傳到選擇的存儲(chǔ)模塊;其中,如果上傳失敗,則數(shù)據(jù)同步服務(wù)器再選擇其它可用的存儲(chǔ)模塊,并上傳數(shù)據(jù) 同步文件。本發(fā)明實(shí)施例提供的多個(gè)存儲(chǔ)模塊可以有效避免單個(gè)存儲(chǔ)模塊損壞而導(dǎo)致數(shù)據(jù) 同步失敗的問(wèn)題,提高了系統(tǒng)的可靠性。步驟606,數(shù)據(jù)同步服務(wù)器向⑶N代理服務(wù)器發(fā)送獲取數(shù)據(jù)通知消息。該通知消息用于通知所述CDN節(jié)點(diǎn)到選擇的存儲(chǔ)模塊獲取數(shù)據(jù)文件。其中,請(qǐng)求 中包括存儲(chǔ)模塊的編號(hào),存儲(chǔ)模塊訪問(wèn)所需要的信息,數(shù)據(jù)同步文件路徑等等。步驟607,⑶N節(jié)點(diǎn)收到數(shù)據(jù)同步服務(wù)器的獲取數(shù)據(jù)通知消息后,發(fā)送請(qǐng)求回應(yīng)。步驟608,CDN節(jié)點(diǎn)從對(duì)應(yīng)的存儲(chǔ)模塊獲取同步數(shù)據(jù)文件,并解析,如果下載同步 數(shù)據(jù)文件或解析失敗則轉(zhuǎn)入步驟609 ;反之,則轉(zhuǎn)入步驟610。步驟609,CDN節(jié)點(diǎn)向數(shù)據(jù)同步服務(wù)器返回成功,流程結(jié)束。步驟610,如果數(shù)據(jù)同步服務(wù)器接收到CDN節(jié)點(diǎn)返回的從存儲(chǔ)模塊獲取同步數(shù)據(jù) 文件或者解析數(shù)據(jù)同步文件失敗的失敗結(jié)果碼,則根據(jù)所述失敗結(jié)果碼選擇其它可用存儲(chǔ) 模塊或通過(guò)業(yè)務(wù)數(shù)據(jù)庫(kù)查詢?nèi)繑?shù)據(jù)請(qǐng)求獲取全量數(shù)據(jù)。其中,如果失敗結(jié)果碼為從存儲(chǔ)模塊獲取同步數(shù)據(jù)文件失敗,數(shù)據(jù)同步服務(wù)器選 擇其它可用存儲(chǔ)模塊,并轉(zhuǎn)到606步驟。如果失敗結(jié)果碼為解析數(shù)據(jù)同步文件失敗,則數(shù)據(jù)同步服務(wù)器通過(guò)業(yè)務(wù)數(shù)據(jù)庫(kù)查 詢?nèi)繑?shù)據(jù)請(qǐng)求。業(yè)務(wù)數(shù)據(jù)庫(kù)返回全量數(shù)據(jù),并轉(zhuǎn)到605步驟。本發(fā)明實(shí)施例提供的方法和裝置利用數(shù)據(jù)同步服務(wù)器和存儲(chǔ)模塊為相關(guān)服務(wù)器 提供數(shù)據(jù)同步服務(wù),其中,數(shù)據(jù)同步服務(wù)器從數(shù)據(jù)庫(kù)模塊獲取全量或者增量數(shù)據(jù),存儲(chǔ)模塊 作為數(shù)據(jù)同步的中轉(zhuǎn)站用來(lái)臨時(shí)存儲(chǔ)同步數(shù)據(jù)。上述實(shí)施例可以應(yīng)用在但不限于IPTV商用系統(tǒng)中,還可以應(yīng)用到其他多種實(shí)施 例,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在發(fā)明的 保護(hù)范圍之內(nèi)。本發(fā)明所述的方法并不限于具體實(shí)施方式
中所述的實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù) 本發(fā)明的技術(shù)方案得出其它的實(shí)施方式,同樣屬于本發(fā)明的技術(shù)創(chuàng)新范圍。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精
8神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
一種內(nèi)容分發(fā)CDN子系統(tǒng),包括CDN管理模塊、存儲(chǔ)模塊和數(shù)據(jù)庫(kù)模塊,其特征在于,還包括CDN節(jié)點(diǎn),用于發(fā)起數(shù)據(jù)同步請(qǐng)求,并根據(jù)接收到的同步數(shù)據(jù)通知消息,從存儲(chǔ)模塊獲取同步數(shù)據(jù)文件;數(shù)據(jù)同步服務(wù)器,用于接收所述CDN節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步請(qǐng)求,根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊獲取全量數(shù)據(jù)或者增量數(shù)據(jù)并存入內(nèi)存,根據(jù)內(nèi)存數(shù)據(jù)生成數(shù)據(jù)文件發(fā)送至存儲(chǔ)模塊,以及向所述CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息。
2.如權(quán)利要求1所述的CDN子系統(tǒng),其特征在于,所述數(shù)據(jù)同步服務(wù)器包括多個(gè),其中, 當(dāng)所述CDN節(jié)點(diǎn)發(fā)送數(shù)據(jù)同步請(qǐng)求失敗時(shí),從未請(qǐng)求同步的其它數(shù)據(jù)同步服務(wù)器中選取一 個(gè)可用的數(shù)據(jù)同步服務(wù)器再次發(fā)送數(shù)據(jù)同步請(qǐng)求,如果沒(méi)有可用的數(shù)據(jù)同步服務(wù)器,則發(fā) 出告警。
3.如權(quán)利要求1或2所述的CDN子系統(tǒng),其特征在于,還包括多個(gè)存儲(chǔ)模塊;則 所述數(shù)據(jù)同步服務(wù)器還用于在向所述CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息之前,將生成的數(shù)據(jù)文件打包,并從所述多個(gè)存儲(chǔ)模塊中選擇任意一個(gè)存儲(chǔ)模塊,將打包后的數(shù)據(jù)文件發(fā) 送到選擇的存儲(chǔ)模塊。
4.如權(quán)利要求3所述的CDN子系統(tǒng),其特征在于,所述數(shù)據(jù)同步服務(wù)器包括數(shù)據(jù)同步單 元和存儲(chǔ)管理單元,其中所述數(shù)據(jù)同步單元,用于接收CDN節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步請(qǐng)求,從數(shù)據(jù)庫(kù)模塊獲取全量 或者增量數(shù)據(jù)并存入內(nèi)存,向CDN節(jié)點(diǎn)發(fā)送數(shù)據(jù)同步響應(yīng)消息,根據(jù)內(nèi)存數(shù)據(jù)生成需要的 數(shù)據(jù)文件,并將生成的數(shù)據(jù)文件打包;存儲(chǔ)管理單元,用于在數(shù)據(jù)同步時(shí),從所述多個(gè)存儲(chǔ)模塊中選擇選擇任意一個(gè)存儲(chǔ)模 塊,將打包后的數(shù)據(jù)文件發(fā)送到選擇的存儲(chǔ)模塊。
5.如權(quán)利要求4所述的CDN子系統(tǒng),其特征在于,所述數(shù)據(jù)同步單元還用于根據(jù)預(yù)設(shè)的 時(shí)間間隔定時(shí)從數(shù)據(jù)庫(kù)模塊獲取增量數(shù)據(jù)存入內(nèi)存。
6.基于權(quán)利要求1所述CDN子系統(tǒng)的數(shù)據(jù)同步方法,其特征在于,包括 數(shù)據(jù)同步服務(wù)器接收CDN節(jié)點(diǎn)發(fā)起的數(shù)據(jù)同步請(qǐng)求后,返回?cái)?shù)據(jù)同步響應(yīng)消息; 根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊中獲取增量數(shù)據(jù),并根據(jù)自身存儲(chǔ)的數(shù)據(jù)和獲取的增量數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)文件并發(fā)送至存儲(chǔ)模塊;向所述CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息,通知CDN節(jié)點(diǎn)從所述存儲(chǔ)模塊獲取所述數(shù)據(jù) 文件。
7.基于權(quán)利要求3所述的CDN子系統(tǒng)的數(shù)據(jù)同步方法,其特征在于,包括CDN節(jié)點(diǎn)對(duì)應(yīng)的歸屬數(shù)據(jù)同步服務(wù)器接收到CDN節(jié)點(diǎn)發(fā)起的數(shù)據(jù)同步請(qǐng)求后,返回?cái)?shù) 據(jù)同步響應(yīng)消息;根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊中獲取增量數(shù)據(jù),并根據(jù)自身存儲(chǔ)的數(shù)據(jù)和獲取 的增量數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)文件;數(shù)據(jù)同步服務(wù)器將生成的數(shù)據(jù)文件打包,從所述多個(gè)存儲(chǔ)模塊中選擇任意一個(gè)存儲(chǔ)模 塊,并將打包后數(shù)據(jù)文件上傳到選擇的存儲(chǔ)模塊;向CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息,通知CDN節(jié)點(diǎn)從所述選擇的存儲(chǔ)模塊獲取數(shù)據(jù)文件。
8.如權(quán)利要求7所述的方法,其特征在于,根據(jù)預(yù)設(shè)的時(shí)間間隔定時(shí)從數(shù)據(jù)庫(kù)模塊獲 取增量數(shù)據(jù)并存入內(nèi)存。
9.如權(quán)利要求7所述的方法,其特征在于,從所述多個(gè)存儲(chǔ)模塊中選擇一個(gè)存儲(chǔ)模塊 包括,根據(jù)預(yù)設(shè)的算法從多個(gè)存儲(chǔ)模塊中選擇任意一個(gè)。
全文摘要
本發(fā)明公開(kāi)了一種內(nèi)容分發(fā)CDN子系統(tǒng)以及數(shù)據(jù)同步的方法,該CDN子系統(tǒng)具體包括CDN管理模塊、存儲(chǔ)模塊和數(shù)據(jù)庫(kù)模塊,CDN節(jié)點(diǎn),用于發(fā)起數(shù)據(jù)同步請(qǐng)求,并根據(jù)接收到的同步數(shù)據(jù)通知消息,從存儲(chǔ)模塊獲取同步數(shù)據(jù)文件;數(shù)據(jù)同步服務(wù)器,用于接收所述CDN節(jié)點(diǎn)發(fā)送的數(shù)據(jù)同步請(qǐng)求,根據(jù)所述數(shù)據(jù)同步請(qǐng)求從數(shù)據(jù)庫(kù)模塊獲取全量數(shù)據(jù)或者增量數(shù)據(jù)并存入內(nèi)存,根據(jù)內(nèi)存數(shù)據(jù)生成數(shù)據(jù)文件發(fā)送至存儲(chǔ)模塊,以及向所述CDN節(jié)點(diǎn)發(fā)送同步數(shù)據(jù)通知消息。應(yīng)用本發(fā)明提供的方法和系統(tǒng)減少同步數(shù)據(jù)的數(shù)據(jù)量,從而減輕業(yè)務(wù)數(shù)據(jù)庫(kù)的負(fù)擔(dān),并增加系統(tǒng)的可靠性。
文檔編號(hào)H04L29/06GK101867613SQ20101019785
公開(kāi)日2010年10月20日 申請(qǐng)日期2010年6月8日 優(yōu)先權(quán)日2010年6月8日
發(fā)明者熊勤, 王劍春, 王德超, 王磊, 黃海泳 申請(qǐng)人:中興通訊股份有限公司