專利名稱:讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,尤其涉及一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)庫(kù)的讀寫(xiě)機(jī)制越來(lái)越重要,現(xiàn)有的《吐2.0應(yīng)用系統(tǒng)架 構(gòu)下的讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法為,當(dāng)接收到用戶的讀寫(xiě)請(qǐng)求后,主應(yīng)用服務(wù)器(master) 向多個(gè)從應(yīng)用服務(wù)器(slave)復(fù)制數(shù)據(jù),由slave完成用戶的讀寫(xiě)請(qǐng)求,即完成數(shù)據(jù)庫(kù) (data-base, DB) ^1 ^在實(shí)現(xiàn)本發(fā)明的過(guò)程中,現(xiàn)有技術(shù)所提供的技術(shù)方案存在如下問(wèn)題現(xiàn)有技術(shù)的方案中的weM. 0應(yīng)用系統(tǒng)的結(jié)構(gòu)會(huì)造成master向多個(gè)slave,產(chǎn)生過(guò) 多的slave讀寫(xiě)請(qǐng)求,導(dǎo)致master復(fù)制數(shù)據(jù)的延時(shí),DB的響應(yīng)性能下降。
發(fā)明內(nèi)容
本發(fā)明提供一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法及系統(tǒng),該方法及系統(tǒng)能減少master復(fù) 制數(shù)據(jù)的延時(shí),具有提高DB的響應(yīng)性能的優(yōu)點(diǎn)。本發(fā)明的具體實(shí)施方式
提供一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法,包括內(nèi)容分發(fā)網(wǎng)絡(luò) ⑶N、應(yīng)用服務(wù)器層、主應(yīng)用服務(wù)器master和從應(yīng)用服務(wù)器slave ;所述方法包括主應(yīng)用服務(wù)器master將讀寫(xiě)命令復(fù)制發(fā)送至下發(fā)從應(yīng)用服務(wù)器slave,所述下發(fā) slave將讀寫(xiě)命令下發(fā)給slave組中的內(nèi)其他的slave,所述其他的slave對(duì)所述讀寫(xiě)命令 進(jìn)行處理;所述下發(fā)slave為具有向其他的slave下發(fā)讀寫(xiě)命令功能的slave。一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的系統(tǒng),所述系統(tǒng)包括內(nèi)容分發(fā)網(wǎng)絡(luò)CDN、應(yīng)用服務(wù)器層、 主應(yīng)用服務(wù)器master和從應(yīng)用服務(wù)器slave ;所述master用于將讀寫(xiě)命令復(fù)制發(fā)送至下發(fā)從應(yīng)用服務(wù)器slave;所述下發(fā) slave用于將讀寫(xiě)命令下發(fā)給slave組中的內(nèi)其他的slave,所述其他的slave對(duì)所述讀寫(xiě) 命令進(jìn)行處理;所述下發(fā)slave為具有向其他的slave下發(fā)讀寫(xiě)命令功能的slave。由上述所提供的技術(shù)方案可以看出,本發(fā)明實(shí)施例的技術(shù)方案能減少master復(fù) 制數(shù)據(jù)的延時(shí),具有提高DB的響應(yīng)性能的優(yōu)點(diǎn)。
圖1為本發(fā)明一實(shí)施例提供的方法實(shí)現(xiàn)的場(chǎng)景圖;圖2為本發(fā)明一實(shí)施例提供的一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法的流程圖; 圖3為本發(fā)明提供的讀寫(xiě)命令的下發(fā)流程圖;圖4為本發(fā)明提供的級(jí)聯(lián)復(fù)制的實(shí)現(xiàn)方法的流程圖。
具體實(shí)施例方式本發(fā)明提供一實(shí)施例,本實(shí)施例提供一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法,本實(shí)施例 實(shí)現(xiàn)的技術(shù)場(chǎng)景為,該方法實(shí)現(xiàn)的技術(shù)場(chǎng)景如圖1所示,包括內(nèi)容分發(fā)網(wǎng)絡(luò)(content delivery network,CDN)、負(fù)載均衡產(chǎn)品F5系列(可選的)、多個(gè)服務(wù)器、應(yīng)用服務(wù)器App和 DB,其中所有的Mysql服務(wù)器分成2組,一組master,一組slave。該方法如圖2所示,包括 如下步驟S21、F5系列接收到用戶的讀寫(xiě)請(qǐng)求后,均衡給⑶N網(wǎng)絡(luò),⑶N網(wǎng)絡(luò)將讀寫(xiě)請(qǐng)求分發(fā) 給服務(wù)器,服務(wù)器通過(guò)APP將讀寫(xiě)命令發(fā)送給DB中的master ;其中CDN的功能可以為作為分流請(qǐng)求的第二層,CDN的基本思路就是盡可能避開(kāi) 互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母?、更穩(wěn),通過(guò) 判斷出請(qǐng)求用戶的IP地址,而選擇相鄰最近的節(jié)點(diǎn)響應(yīng)請(qǐng)求,能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和 各節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶的距離和響應(yīng)時(shí)間等綜合信息將用戶的請(qǐng)求重新導(dǎo) 向離用戶最近的服務(wù)節(jié)點(diǎn)上,而且CDN本身就是一層緩存,類(lèi)似圖片和Flash,視頻等大文 件,對(duì)于網(wǎng)絡(luò)傳輸開(kāi)銷(xiāo)都是很大的,有了⑶N,這些東西都可以在第一次被訪問(wèn)之后緩存下 來(lái),廣泛分布的CDN節(jié)點(diǎn)和其上的智能冗余策略,還可以提供鏡像服務(wù)和集群抗攻擊效應(yīng)。App的功能可以為作為提供各項(xiàng)具體服務(wù)的一層,App也是用戶最為關(guān)心和接觸 用戶最直接的一層,在這一層里,有提供廣告服務(wù)的廣告服務(wù)器(AdServer),有提供搜索服 務(wù)的搜索服務(wù)器Gearchkrver),有提供通信服務(wù)的短信息接口服務(wù)器和郵件服務(wù)器,還 有提供圖片分享的圖片服務(wù)器(Imagekrver),等等。S22、master將讀寫(xiě)命令復(fù)制發(fā)送至下發(fā)slave,下發(fā)slave將讀寫(xiě)命令下發(fā)給組 內(nèi)其他的slave ;上述下發(fā)slave可以為具有向其他的slave下發(fā)讀寫(xiě)命令功能的slave。S24、組內(nèi)其他的slave處理接收到的讀寫(xiě)命令。可選的,上述方法采用F5系列接收到用戶的讀寫(xiě)請(qǐng)求后,均衡給CDN網(wǎng)絡(luò)為可選 的操作。上述通過(guò)F5系列進(jìn)行負(fù)載均衡的處理降低了 DB的負(fù)載??蛇x的,上述方法還包括在APP層采用Xapian為用戶提供搜索服務(wù),可選的,該 方法還可以對(duì)搜索引擎建立友好統(tǒng)一資源定位符(Universal ResourceLocator, URL),優(yōu) 化搜索引擎。上述建立友好URL的方法具體可以為將URL的格式從“? user = 124&time = 2009”修改成“/user/124/time/2009”。即將動(dòng)態(tài)的 URL 修改成靜態(tài)的URL,當(dāng)優(yōu)化為靜態(tài)URL時(shí),有利于搜索引擎收錄,便于交流記憶。具體的實(shí)現(xiàn) 方法可以通過(guò)解析由URL重寫(xiě)規(guī)則來(lái)完成,此功能在服務(wù)器端配置。上述方法在APP層還可以包括,采用caehe為用戶提供頁(yè)面服務(wù)。可選的,在S24之后,還可以包括統(tǒng)計(jì)用戶的讀寫(xiě)命令的信息,建立操作日志,并 將用戶的讀寫(xiě)命令的信息記錄在操作日志內(nèi)。該讀寫(xiě)命令的信息包括但不限于,讀寫(xiě)命令 的成功率、讀寫(xiě)命令的發(fā)起時(shí)間、讀寫(xiě)命令的處理進(jìn)度等等??蛇x的,上述方法在SM之后,還可以包括定期存儲(chǔ)數(shù)據(jù),并設(shè)置時(shí)限閾值,將超 過(guò)時(shí)限閾值的數(shù)據(jù)刪除。上述通過(guò)對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行定期的管理,減少了數(shù)據(jù)的存儲(chǔ)壓力, 降低了 DB的負(fù)載。
本實(shí)施例提供的方法中的DB采用級(jí)聯(lián)復(fù)制(具體可以為master將讀寫(xiě)命令復(fù) 制給下發(fā)slave,下發(fā)slave將讀寫(xiě)命令下發(fā)給組內(nèi)其他的slave,參見(jiàn)圖3,圖4為級(jí)聯(lián)復(fù) 制的實(shí)現(xiàn)方法)下發(fā)讀寫(xiě)請(qǐng)求,減少了 master管理的slave的個(gè)數(shù),進(jìn)而減少了 master與 slave的輸入輸出(IO)線程,減少了 master的負(fù)載,減少master復(fù)制數(shù)據(jù)的延時(shí),具有提 高DB的響應(yīng)性能的優(yōu)點(diǎn)。本發(fā)明還提供一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的系統(tǒng),該系統(tǒng)如圖4所示,包括內(nèi)容分發(fā)網(wǎng) 絡(luò)CDN41、應(yīng)用服務(wù)器層42、主應(yīng)用服務(wù)器maSter43和從應(yīng)用服務(wù)器slave層44 ;上述slave層44包括下發(fā)slave441和其他slave442 ;master43用于將讀寫(xiě)命 令復(fù)制發(fā)送至下發(fā)從應(yīng)用服務(wù)器slaVe441 ;下發(fā)slaVe441用于將讀寫(xiě)命令下發(fā)給slave 組中的內(nèi)其他的slave442,其他的slaVe442對(duì)所述讀寫(xiě)命令進(jìn)行處理;下發(fā)slaVe441為 具有能向其他的slave442下發(fā)讀寫(xiě)命令的slave??蛇x的,上述系統(tǒng)還包括F5產(chǎn)品45,用于在⑶N之前進(jìn)行負(fù)載分配??蛇x的,上述系統(tǒng)還包括統(tǒng)計(jì)單元46,用于統(tǒng)計(jì)maSter43和slaVe44處理的用 戶的讀寫(xiě)命令的信息,建立操作日志,并將用戶的讀寫(xiě)命令的信息記錄在操作日志內(nèi)??蛇x的,上述系統(tǒng)還包括存儲(chǔ)單元47,用于定期存儲(chǔ)maSter43和slaVe44的數(shù) 據(jù),并設(shè)置時(shí)限閾值,將超過(guò)時(shí)限閾值的數(shù)據(jù)刪除。本實(shí)施例提供的裝置中的master將讀寫(xiě)命令復(fù)制給下發(fā)slave,下發(fā)slave將讀 寫(xiě)命令下發(fā)給組內(nèi)其他的slave,減少了 master管理的slave的個(gè)數(shù),進(jìn)而減少了 master 與slave的輸入輸出(IO)線程,減少了 master的負(fù)載,減少master復(fù)制數(shù)據(jù)的延時(shí),具有 提高DB的響應(yīng)性能的優(yōu)點(diǎn)。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以 通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該 程序在執(zhí)行時(shí),包括上述方法步驟,所述的存儲(chǔ)介質(zhì)包括R0M/RAM、磁盤(pán)、光盤(pán)等。綜上所述,本發(fā)明具體實(shí)施方式
提供的技術(shù)方案,具有加載的時(shí)間較短,用戶體驗(yàn) 高的優(yōu)點(diǎn)。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或 替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù) 范圍為準(zhǔn)。
權(quán)利要求
1.一種讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法,其特征在于,包括內(nèi)容分發(fā)網(wǎng)絡(luò)CDN、應(yīng)用服務(wù)器層、 主應(yīng)用服務(wù)器master和從應(yīng)用服務(wù)器slave ;所述方法包括主應(yīng)用服務(wù)器master將讀寫(xiě)命令復(fù)制發(fā)送至下發(fā)從應(yīng)用服務(wù)器slave,所述下發(fā) slave將讀寫(xiě)命令下發(fā)給slave組中的內(nèi)其他的slave,所述其他的slave對(duì)所述讀寫(xiě)命令 進(jìn)行處理;所述下發(fā)slave為具有向其他的slave下發(fā)讀寫(xiě)命令功能的slave。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法在master之前的內(nèi)容分發(fā)網(wǎng)絡(luò) ⑶N之前采用F5產(chǎn)品進(jìn)行負(fù)載分配。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括在應(yīng)用服務(wù)器層采用 Xapian為用戶提供搜索服務(wù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括對(duì)應(yīng)用服務(wù)器層的搜索 引擎建立友好統(tǒng)一資源定位符URL。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括統(tǒng)計(jì)master和slave處 理的用戶的讀寫(xiě)命令的信息,建立操作日志,并將用戶的讀寫(xiě)命令的信息記錄在操作日志 內(nèi)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括定期存儲(chǔ)master和 slave的數(shù)據(jù),并設(shè)置時(shí)限閾值,將超過(guò)時(shí)限閾值的數(shù)據(jù)刪除。
7.—種讀寫(xiě)分離數(shù)據(jù)庫(kù)的系統(tǒng),其特征在于,所述系統(tǒng)包括內(nèi)容分發(fā)網(wǎng)絡(luò)CDN、應(yīng)用 服務(wù)器層、主應(yīng)用服務(wù)器master和從應(yīng)用服務(wù)器slave ;所述master用于將讀寫(xiě)命令復(fù)制發(fā)送至下發(fā)從應(yīng)用服務(wù)器slave ;所述下發(fā)slave用 于將讀寫(xiě)命令下發(fā)給slave組中的內(nèi)其他的slave,所述其他的slave對(duì)所述讀寫(xiě)命令進(jìn)行 處理;所述下發(fā)slave為具有向其他的slave下發(fā)讀寫(xiě)命令功能的slave。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括F5產(chǎn)品,所述F5產(chǎn)品用 于在⑶N之前進(jìn)行負(fù)載分配。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括統(tǒng)計(jì)單元,用于統(tǒng)計(jì) master和slave處理的用戶的讀寫(xiě)命令的信息,建立操作日志,并將用戶的讀寫(xiě)命令的信 息記錄在操作日志內(nèi)。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括存儲(chǔ)單元,用于定期存 儲(chǔ)master和slave的數(shù)據(jù),并設(shè)置時(shí)限閾值,將超過(guò)時(shí)限閾值的數(shù)據(jù)刪除。
全文摘要
本發(fā)明實(shí)施方式提供了一種搭建網(wǎng)絡(luò)應(yīng)用架構(gòu)的方法,其中包括讀寫(xiě)分離數(shù)據(jù)庫(kù)的方法及系統(tǒng),上述方法及系統(tǒng)屬于網(wǎng)絡(luò)通信領(lǐng)域,該方法包括主應(yīng)用服務(wù)器master將讀寫(xiě)命令復(fù)制發(fā)送至下發(fā)從應(yīng)用服務(wù)器slave,所述下發(fā)slave將讀寫(xiě)命令下發(fā)給slave組中的內(nèi)其他的slave,所述其他的slave對(duì)所述讀寫(xiě)命令進(jìn)行處理;所述下發(fā)slave為具有向其他的slave下發(fā)讀寫(xiě)命令功能的slave。本發(fā)明提供的方法及系統(tǒng)具有減少master復(fù)制數(shù)據(jù)的延時(shí),具有提高DB的響應(yīng)性能的優(yōu)點(diǎn)。
文檔編號(hào)G06F17/30GK102129434SQ201010034060
公開(kāi)日2011年7月20日 申請(qǐng)日期2010年1月13日 優(yōu)先權(quán)日2010年1月13日
發(fā)明者馬曉偉 申請(qǐng)人:騰訊科技(北京)有限公司