欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法、裝置及系統(tǒng)的制作方法

文檔序號:10655402閱讀:290來源:國知局
一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法、裝置及系統(tǒng),該方法包括:在單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫;實時接收客戶端發(fā)送的訪問請求;判斷訪問請求是否為寫訪問請求;如果是,將所述訪問請求發(fā)送給主應(yīng)用數(shù)據(jù)庫,通過所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求,并將處理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至各個所述從應(yīng)用數(shù)據(jù)庫中;如果否,將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫,通過所述從應(yīng)用數(shù)據(jù)庫處理所述訪問請求。該裝置包括:創(chuàng)建單元、讀寫分離單元及執(zhí)行單元。該系統(tǒng)包括:單臺數(shù)據(jù)庫、至少一個客戶端及上述提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置。本方案能夠提高單臺數(shù)據(jù)庫的高并發(fā)處理能力。
【專利說明】
一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法、 裝置及系統(tǒng)?!颈尘凹夹g(shù)】
[0002]數(shù)據(jù)庫作為一種電子文件柜,用于存儲與應(yīng)用程序彼此獨立的數(shù)據(jù),數(shù)據(jù)庫中的數(shù)據(jù)可以共享給多個用戶,用戶可以對數(shù)據(jù)庫中的數(shù)據(jù)進行新增、截取、更新以及刪除等操作。數(shù)據(jù)庫具有多種形式,可以為僅包括一臺數(shù)據(jù)庫的單臺數(shù)據(jù)庫,也可以為包括多臺數(shù)據(jù)庫的大型數(shù)據(jù)庫,單臺數(shù)據(jù)庫的存儲空間較小,一般應(yīng)用于中小型企業(yè),而大型數(shù)據(jù)庫具有巨大的存儲空間,一般應(yīng)用于大型集團企業(yè)。
[0003]單臺數(shù)據(jù)庫既需要處理讀訪問請求,又需要處理寫訪問請求,當(dāng)多個用戶同時對單臺數(shù)據(jù)庫進行訪問時,由于數(shù)據(jù)庫的響應(yīng)速度較慢,造成數(shù)據(jù)庫發(fā)生宕機,因而單臺數(shù)據(jù)庫的高并發(fā)處理能力較差。
【發(fā)明內(nèi)容】

[0004]本發(fā)明實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法、裝置及系統(tǒng),能夠提高單臺數(shù)據(jù)庫的高并發(fā)處理能力。
[0005]本發(fā)明實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法,包括:
[0006]在所述單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫;
[0007]實時接收客戶端發(fā)送的訪問請求;
[0008]判斷所述訪問請求是否為寫訪問請求;
[0009]如果是,將所述訪問請求發(fā)送給所述主應(yīng)用數(shù)據(jù)庫,通過所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求,并將處理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至各個所述從應(yīng)用數(shù)據(jù)庫中;
[0010]如果否,將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫,通過所述從應(yīng)用數(shù)據(jù)庫處理所述訪問請求。[〇〇11]優(yōu)選地,所述將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫包括:
[0012]依次檢測所述至少一個從應(yīng)用數(shù)據(jù)庫的負(fù)載情況,從所述至少一個從應(yīng)用數(shù)據(jù)庫中確定出負(fù)載最小的一個從應(yīng)用數(shù)據(jù)庫作為目標(biāo)從應(yīng)用數(shù)據(jù)庫,將所述訪問請求發(fā)送給所述目標(biāo)從應(yīng)用數(shù)據(jù)庫,其中,若所述單臺數(shù)據(jù)庫上僅包括一個從應(yīng)用數(shù)據(jù)庫,則該從應(yīng)用數(shù)據(jù)庫的負(fù)載最小。
[0013]優(yōu)選地,所述將處理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至各個所述從應(yīng)用數(shù)據(jù)庫中包括:
[0014]獲取所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求時產(chǎn)生的操作日志,將所述操作日志分別發(fā)送給各個所述從應(yīng)用數(shù)據(jù)庫,使各個所述從應(yīng)用數(shù)據(jù)庫根據(jù)所述操作日志對相應(yīng)數(shù)據(jù)進行寫操作,以使各個所述從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)與所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)相同。
[0015]優(yōu)選地,所述判斷所述訪問請求是否為寫訪問請求包括:
[0016]獲取所述訪問請求的報文,對所述報文進行分析,判斷所述報文中是否包括代表更新、插入或刪除的關(guān)鍵詞,如果是,確定所述訪問請求為寫訪問請求,否則確定所述訪問請求為讀訪問請求。
[0017]優(yōu)選地,所述寫訪問請求包括:更新訪問請求、插入訪問請求或刪除訪問請求。
[0018]本發(fā)明實施例還提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置,包括:創(chuàng)建單元、讀寫分離單元及執(zhí)行單元;
[0019]所述創(chuàng)建單元,用于在所述單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫;
[0020]所述讀寫分離單元,用于實時接收客戶端發(fā)送的訪問請求,并判斷所述訪問請求是否為寫訪問請求;
[0021]所述執(zhí)行單元,用于根據(jù)所述讀寫分離單元的判斷結(jié)果,如果是,將所述訪問請求發(fā)送給所述創(chuàng)建單元創(chuàng)建的主應(yīng)用數(shù)據(jù)庫,通過所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求,并將處理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至所述創(chuàng)建單元創(chuàng)建的各個從應(yīng)用數(shù)據(jù)庫中;如果否,將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫,通過所述從應(yīng)用數(shù)據(jù)庫處理所述訪問請求。[〇〇22] 優(yōu)選地,
[0023]所述執(zhí)行單元,用于依次檢測所述至少一個從應(yīng)用數(shù)據(jù)庫的負(fù)載情況,從所述至少一個從應(yīng)用數(shù)據(jù)庫中確定出負(fù)載最小的一個從應(yīng)用數(shù)據(jù)庫作為目標(biāo)應(yīng)用數(shù)據(jù)庫,將所述訪問請求發(fā)送給所述目標(biāo)從應(yīng)用數(shù)據(jù)庫,其中,若所述單臺服務(wù)器上僅包括一個從應(yīng)用數(shù)據(jù)庫,則該從應(yīng)用數(shù)據(jù)庫的負(fù)載最小。[〇〇24] 優(yōu)選地,
[0025]所述執(zhí)行單元,用于獲取所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求時產(chǎn)生的操作日志,將所述操作日志分別發(fā)送給各個所述從應(yīng)用數(shù)據(jù)庫,使各個所述從應(yīng)用數(shù)據(jù)庫根據(jù)所述操作日志對相應(yīng)數(shù)據(jù)進行寫操作,以使各個所述從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)與所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)相同。
[0026]優(yōu)選地,
[0027]所述讀寫分離單元,用于獲取所述訪問請求的報文,對所述報文進行分析,判斷所述報文中是否包括代表更新、插入或刪除的關(guān)鍵詞,如果是,確定所述訪問請求為寫訪問請求,否則確定所述訪問請求為讀訪問請求。
[0028]本發(fā)明實施例還提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的系統(tǒng),包括:
[0029]單臺數(shù)據(jù)庫、至少一個客戶端以及本發(fā)明實施例提供的任意一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置;
[0030]所述單臺數(shù)據(jù)庫,用于接收所述提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置發(fā)送的訪問請求,并對所述訪問請求進行處理;
[0031]所述客戶端,用于向所述提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置發(fā)送訪問請求。
[0032]本發(fā)明實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法、裝置及系統(tǒng),在單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫,在接收到客戶端發(fā)送的訪問請求后判斷訪問請求是否為寫訪問請求,如果是將訪問請求發(fā)送給主應(yīng)用數(shù)據(jù)庫進行處理,否則將訪問請求發(fā)送給從應(yīng)用數(shù)據(jù)庫進行處理,每次主應(yīng)用數(shù)據(jù)庫處理訪問請求后都將主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新到各個從應(yīng)用數(shù)據(jù)庫中。這樣,通過對訪問請求進行讀寫分離,讀訪問請求和寫訪問請求分別由不同的應(yīng)用數(shù)據(jù)庫進行處理,能夠同時對多個訪問請求進行處理,從而提高了單臺數(shù)據(jù)庫的高并發(fā)處理能力。【附圖說明】
[0033]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0034]圖1是本發(fā)明一個實施例提供的一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法流程圖;
[0035]圖2是本發(fā)明另一個實施例提供的一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法流程圖;
[0036]圖3是本發(fā)明一個實施例提供的一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置所在設(shè)備的不意圖;
[0037]圖4是本發(fā)明一個實施例提供的一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置示意圖;
[0038]圖5是本發(fā)明一個實施例提供的一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的系統(tǒng)示意圖?!揪唧w實施方式】[〇〇39]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0040]如圖1所示,本發(fā)明實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法,該方法可以包括以下步驟:
[0041]步驟101:在所述單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫;
[0042]步驟102:實時接收客戶端發(fā)送的訪問請求;
[0043]步驟103:判斷所述訪問請求是否為寫訪問請求,如果是,執(zhí)行步驟104,否則執(zhí)行步驟105;
[0044]步驟104:將所述訪問請求發(fā)送給所述主應(yīng)用數(shù)據(jù)庫,通過所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求,并將處理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至各個所述從應(yīng)用數(shù)據(jù)庫中,并結(jié)束當(dāng)前流程;
[0045]步驟105:將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫,通過所述從應(yīng)用數(shù)據(jù)庫處理所述訪問請求。[〇〇46]本發(fā)明實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法,在單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫,在接收到客戶端發(fā)送的訪問請求后判斷訪問請求是否為寫訪問請求,如果是將訪問請求發(fā)送給主應(yīng)用數(shù)據(jù)庫進行處理,否則將訪問請求發(fā)送給從應(yīng)用數(shù)據(jù)庫進行處理,每次主應(yīng)用數(shù)據(jù)庫處理訪問請求后都將主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新到各個從應(yīng)用數(shù)據(jù)庫中。這樣,通過對訪問請求進行讀寫分離,讀訪問請求和寫訪問請求分別由不同的應(yīng)用數(shù)據(jù)庫進行處理,能夠同時對多個訪問請求進行處理,從而提高了單臺數(shù)據(jù)庫的高并發(fā)處理能力。
[0047]在本發(fā)明一個實施例中,在判斷一個訪問請求不是寫訪問請求時,說明該訪問請求為讀訪問請求,依次檢測各個從應(yīng)用數(shù)據(jù)庫的負(fù)載情況,確定出負(fù)載最小的從應(yīng)用數(shù)據(jù)庫對讀訪問請求進行處理,如果單臺數(shù)據(jù)庫上只包括一個從應(yīng)用數(shù)據(jù)庫,則該從應(yīng)用數(shù)據(jù)庫的負(fù)載始終最小。將讀訪問請求分配到負(fù)載最小的從應(yīng)用數(shù)據(jù)庫上進行處理,在多個客戶端同時發(fā)起訪問請求時,可以減小處理訪讀問請求的延遲時間,從而進一步提高了單臺數(shù)據(jù)庫的高并發(fā)處理能力。[〇〇48] 在本發(fā)明一個實施例中,在通過主應(yīng)用數(shù)據(jù)庫對寫訪問請求進行處理后,獲取主應(yīng)用數(shù)據(jù)庫對寫訪問請求進行處理時產(chǎn)生的操作日志,將該操作日志分別發(fā)送給各個從應(yīng)用數(shù)據(jù)庫,使各個從應(yīng)用數(shù)據(jù)庫根據(jù)接收到的操作日志對相應(yīng)的數(shù)據(jù)進行處理,使每一個從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)與主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)都相同。這樣,每一個從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)都與主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)相同,使從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)是最新的,從而保證客戶端通過讀訪問請求獲取到的數(shù)據(jù)是最新的,保證單臺數(shù)據(jù)庫能夠正常地處理客戶端的訪問請求。
[0049]在本發(fā)明一個實施例中,在判斷一個訪問請求為讀訪問請求還是寫訪問請求時, 獲取訪問請求的報文,對報文進行分析,判斷報文中是否包括代表更新、插入或刪除的關(guān)鍵詞,如果是,貝判斷該訪問請求為寫訪問請求,否則判斷該訪問請求為讀訪問請求。這樣通過關(guān)鍵詞判斷訪問請求為讀訪問請求還是寫訪問請求,可以準(zhǔn)確的實現(xiàn)訪問請求的讀寫分離,保證該提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法能力正常實施。
[0050]在本發(fā)明一個實施例中,寫訪問請求包括更新訪問請求、插入訪問請求或者刪除訪問請求,從而主應(yīng)用數(shù)據(jù)庫可以對各種寫形式的訪問請求進行處理,將所有的寫訪問請求集中在主應(yīng)用數(shù)據(jù)庫上進行處理,方便對各個從應(yīng)用數(shù)據(jù)庫上的數(shù)據(jù)進行更新。
[0051]下面以單臺MySQL管理系統(tǒng)的數(shù)據(jù)庫為例,對本發(fā)明實施例提供的提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法作進一步地詳細(xì)描述。[〇〇52]如圖2所示,本發(fā)明一個實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法, 包括:[〇〇53]步驟201:在單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫。
[0054]在本發(fā)明一個實施例中,為了將請問請求中的讀訪問請求和寫訪問請求分配到不同的數(shù)據(jù)庫上進行處理,在單臺MySQL數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫用于處理寫訪問請求,創(chuàng)建至少一個從應(yīng)用數(shù)據(jù)庫用于處理讀訪問請求,從應(yīng)用數(shù)據(jù)庫的數(shù)量根據(jù)讀訪問請求的數(shù)量進行確定。[〇〇55] 例如,在一個單臺MySQL數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫master和3個從應(yīng)用數(shù)據(jù)庫slave,3個從應(yīng)用數(shù)據(jù)庫slave分別為從應(yīng)用數(shù)據(jù)庫slavel、從應(yīng)用數(shù)據(jù)庫slave2和從應(yīng)用數(shù)據(jù)庫slave3。[〇〇56]步驟202:對主應(yīng)用數(shù)據(jù)庫及各個從應(yīng)用數(shù)據(jù)進行配置,以實現(xiàn)主應(yīng)用數(shù)據(jù)庫與各個從應(yīng)用數(shù)據(jù)庫之間的通信。
[0057]在本發(fā)明一個實施例中,針對于主應(yīng)用數(shù)據(jù)庫,為主應(yīng)用數(shù)據(jù)庫分配服務(wù)ID,并開啟主應(yīng)用數(shù)據(jù)庫的主從復(fù)制功能;針對于每一個從應(yīng)用數(shù)據(jù)庫,為該從應(yīng)用數(shù)據(jù)庫分配服務(wù)ID、登錄賬號、登錄密碼、登錄接口等信息,并開啟該從應(yīng)用數(shù)據(jù)庫的主從復(fù)制功能。 [0〇58] 例如,為主應(yīng)用數(shù)據(jù)庫master配置server-1D,開啟主應(yīng)用數(shù)據(jù)庫master上的二進制服務(wù)l〇g-bin功能;分別為3個從應(yīng)用數(shù)據(jù)庫slave配置server-1D,開啟3個從應(yīng)用數(shù)據(jù)庫 slave上的二進制服務(wù)log-bin功能,并配置每一個從應(yīng)用數(shù)據(jù)庫slave的master-host、 master-user、master_pas sword及master-port,確保能夠與主應(yīng)用數(shù)據(jù)庫mas ter進行通 {目。
[0059]步驟203:實時接收各個客戶端發(fā)送的訪問請求。
[0060]在本發(fā)明一個實施例中,主應(yīng)用數(shù)據(jù)庫和從應(yīng)用數(shù)據(jù)庫創(chuàng)建并配置完成后,實時接收各個客戶端發(fā)送的訪問請求。單臺數(shù)據(jù)庫可以具有一個客戶端,也可以具有多個客戶端,客戶端可以同時發(fā)出訪問請求。[0061 ]例如,單臺MySQL數(shù)據(jù)庫具有50個客戶端,實時接收這50個客戶端發(fā)出的訪問請求。[〇〇62]步驟204:判斷訪問請求是否為寫訪問請求,如果是,執(zhí)行步驟205,否則執(zhí)行步驟 207〇
[0063]在本發(fā)明一個實施例中,針對于接收到的每一個訪問請求,獲取該訪問請求的報文,對該報文進行分析,檢測該報文中是否包括代表更新、插入或刪除的關(guān)鍵詞,如果是,判斷該訪問請求為寫訪問請求,針對于該訪問請求執(zhí)行步驟205;如果該報文中不包括代表更新、插入及刪除的關(guān)鍵詞中的任意一個,判斷該訪問請求為讀訪問請求,針對于該訪問請求執(zhí)行步驟207。
[0064]例如,接收到50個客戶端中其中一個客戶端發(fā)送的訪問請求后,獲取該訪問請求的報文,檢測報文中是否包括關(guān)鍵詞update、insert或delete,其中update代表更新, insert代表插入,delete代表刪除,如果報文中包括update、insert及delete中的任意一個,說明該訪問請求為對數(shù)據(jù)庫中數(shù)據(jù)進行寫操作的訪問請求,判斷該訪問請求為寫訪問請求,針對于該訪問請求執(zhí)行步驟205;如果報文中不包括update、insert及delete中的任意一個,說明該訪問請求不是對數(shù)據(jù)庫中數(shù)據(jù)進行寫操作的訪問請求,則該訪問請求為對數(shù)據(jù)庫中數(shù)據(jù)進行讀操作的訪問請求,判斷該訪問請求為讀訪問請求,針對于該訪問請求執(zhí)行步驟207。[〇〇65] 步驟205:將訪問請求發(fā)送給主應(yīng)用數(shù)據(jù)庫,通過主應(yīng)用程序?qū)υ撛L問請求進行處理。
[0066]在本發(fā)明一個實施例中,在判斷一個訪問請求為寫訪問請求后,將該訪問請求發(fā)送給主應(yīng)用該數(shù)據(jù)庫,通過主應(yīng)用數(shù)據(jù)庫對該訪問請求進行處理,主應(yīng)用數(shù)據(jù)庫根據(jù)該訪問請求的報文,對相應(yīng)的數(shù)據(jù)進行更新、插入或刪除處理,并形成相應(yīng)的日志文件。
[0067]例如,判斷一個訪問請求A為寫訪問請求后,將訪問請求A發(fā)送給主應(yīng)用數(shù)據(jù)庫 master,主應(yīng)用數(shù)據(jù)庫master對訪問請求A的報文進行分析,確定訪問請求A為將一個文件名為l.txt的文件進行刪除的訪問請求,主應(yīng)用數(shù)據(jù)庫master根據(jù)訪問請求A,將文件名為 1.txt的文件刪除,并形成相應(yīng)的日志文件1。
[0068]步驟206:將主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至各個從應(yīng)用數(shù)據(jù)庫中,并結(jié)束當(dāng)前流程。
[0069]在本發(fā)明一個實施例中,主應(yīng)用該數(shù)據(jù)庫根據(jù)寫訪問請求對相應(yīng)的數(shù)據(jù)進行寫處理后,將主應(yīng)用數(shù)據(jù)庫對寫訪問請求進行處理過程中形成的日志文件發(fā)送給各個從應(yīng)用數(shù)據(jù)庫,每一個從應(yīng)用數(shù)據(jù)庫接收到日志文件中,根據(jù)日志文件中記錄的操作步驟,進行相同的處理,使從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)與主應(yīng)用數(shù)據(jù)庫中的文件保持相同。
[0070] 例如,在主應(yīng)用數(shù)據(jù)庫master對訪問請求A處理完成后,將主應(yīng)用數(shù)據(jù)庫master對訪問請求A進行處理過程中行程的日志文件1分別發(fā)送給3個從應(yīng)用數(shù)據(jù)庫slave,從應(yīng)用數(shù)據(jù)庫slavel、從應(yīng)用數(shù)據(jù)庫slave2及從應(yīng)用數(shù)據(jù)庫slave3根據(jù)日志文件1記錄的操作過程, 分別將各自存儲的文件名為1.txt的文件刪除,保持與主應(yīng)用數(shù)據(jù)庫master中數(shù)據(jù)相同。 [〇〇71]步驟207:對各個從應(yīng)用數(shù)據(jù)庫的負(fù)載進行檢測,確定出負(fù)載最小的目標(biāo)從應(yīng)用數(shù)據(jù)庫。
[0072]在本發(fā)明一個實施例中,在判斷一個訪問請求為讀訪問請求后,對各個從應(yīng)用數(shù)據(jù)庫的負(fù)載情況進行檢測,確定出一個當(dāng)前時間負(fù)載最小的從應(yīng)用數(shù)據(jù)庫作為目標(biāo)從應(yīng)用數(shù)據(jù)庫。
[0073]例如,在判斷訪問請求B為讀訪問請求后,對3個從應(yīng)用數(shù)據(jù)庫slave的負(fù)載進行檢測,檢測獲得從應(yīng)用數(shù)據(jù)庫slavel的負(fù)載為30%,從應(yīng)用數(shù)據(jù)庫slave2的負(fù)載為50%,從應(yīng)用數(shù)據(jù)庫slave3的負(fù)載為10%,由于從應(yīng)用數(shù)據(jù)庫slave3的負(fù)載最小,將從應(yīng)用數(shù)據(jù)庫 slave3確定為目標(biāo)從應(yīng)用數(shù)據(jù)庫。[〇〇74]步驟208:將訪問請求發(fā)送給目標(biāo)從應(yīng)用數(shù)據(jù)庫,通過目標(biāo)從應(yīng)用數(shù)據(jù)庫對訪問請求進行處理。
[0075]在本發(fā)明一個實施例中,在確定出目標(biāo)從應(yīng)用數(shù)據(jù)庫后,將讀訪問請求發(fā)送給目標(biāo)從應(yīng)用數(shù)據(jù)庫,目標(biāo)從應(yīng)用數(shù)據(jù)庫根據(jù)讀訪問請求確定所要讀取的數(shù)據(jù),獲取所需數(shù)據(jù)發(fā)送給發(fā)出讀訪問請求的客戶端。
[0076]例如,在確定從應(yīng)用數(shù)據(jù)庫Slave3為目標(biāo)從應(yīng)用數(shù)據(jù)庫后,將訪問請求B發(fā)送給從應(yīng)用數(shù)據(jù)庫slave3,從應(yīng)用數(shù)據(jù)庫slave3根據(jù)訪問請求B的報文,確定訪問請求B為50個客戶端中的客戶端1讀取文件名為2.txt文件的訪問請求,從應(yīng)用數(shù)據(jù)庫slave3將文件名為 2.txt的文件發(fā)送給客戶端1。
[0077]如圖3、圖4所示,本發(fā)明實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置。 裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實施例提供的提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報文的轉(zhuǎn)發(fā)芯片等等。以軟件實現(xiàn)為例,如圖4所示,作為一個邏輯意義上的裝置,是通過其所在設(shè)備的CPU將非易失性存儲器中對應(yīng)的計算機程序指令讀取到內(nèi)存中運行形成的。本實施例提供的提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置,包括:創(chuàng)建單元401、讀寫分離單元402及執(zhí)行單元403;
[0078]創(chuàng)建單元401,用于在單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫;
[0079]讀寫分離單元402,用于實時接收客戶端發(fā)送的訪問請求,并判斷訪問請求是否為寫訪問請求;
[0080]執(zhí)行單元403,用于根據(jù)讀寫分離單元402的判斷結(jié)果,如果是,將訪問請求發(fā)送給創(chuàng)建單元401創(chuàng)建的主應(yīng)用數(shù)據(jù)庫,通過主應(yīng)用數(shù)據(jù)庫處理訪問請求,并將處理訪問請求后主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至創(chuàng)建單元401創(chuàng)建的各個從應(yīng)用數(shù)據(jù)庫中;如果否,將訪問請求發(fā)送給從應(yīng)用數(shù)據(jù)庫,通過從應(yīng)用數(shù)據(jù)庫處理訪問請求。
[0081]在本發(fā)明一個實施例中,執(zhí)行單元403,用于依次檢測至少一個從應(yīng)用數(shù)據(jù)庫的負(fù)載情況,從至少一個從應(yīng)用數(shù)據(jù)庫中確定出負(fù)載最小的一個從應(yīng)用數(shù)據(jù)庫作為目標(biāo)應(yīng)用數(shù)據(jù)庫,將訪問請求發(fā)送給目標(biāo)從應(yīng)用數(shù)據(jù)庫,其中,若單臺服務(wù)器上僅包括一個從應(yīng)用數(shù)據(jù)庫,則該從應(yīng)用數(shù)據(jù)庫的負(fù)載最小。[〇〇82]在本發(fā)明一個實施例中,執(zhí)行單元403,用于獲取主應(yīng)用數(shù)據(jù)庫處理訪問請求時產(chǎn)生的操作日志,將操作日志分別發(fā)送給各個從應(yīng)用數(shù)據(jù)庫,使各個從應(yīng)用數(shù)據(jù)庫根據(jù)操作日志對相應(yīng)數(shù)據(jù)進行寫操作,以使各個從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)與主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)相同。[〇〇83]在本發(fā)明一個實施例中,讀寫分離單元402,用于獲取訪問請求的報文,對報文進行分析,判斷報文中是否包括代表更新、插入或刪除的關(guān)鍵詞,如果是,確定訪問請求為寫訪問請求,否則確定訪問請求為讀訪問請求。[〇〇84]在本發(fā)明一個實施例中,當(dāng)單臺數(shù)據(jù)庫為MySQL管理系統(tǒng)的數(shù)據(jù)庫時,讀寫分離單元402可以為MYSQL Proxy中間件,MYSQL Proxy中間件用于對客戶端發(fā)送的訪問請求進行分類,將讀訪問請求和寫訪問請求發(fā)送給不同的數(shù)據(jù)庫進行處理,實現(xiàn)數(shù)據(jù)庫的讀寫分離, 從而提尚數(shù)據(jù)庫的尚并發(fā)處理能力。
[0085]上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
[0086]如圖5所示,本發(fā)明一個實施例提供了一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的系統(tǒng), 包括:單臺數(shù)據(jù)庫501、至少一個客戶端502及本發(fā)明實施例提供的任意一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置503;[〇〇87]單臺數(shù)據(jù)庫501,用于接收提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置503發(fā)送的訪問請求,并對訪問請求進行處理;[〇〇88]客戶端502,用于向提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置503發(fā)送訪問請求。
[0089]本發(fā)明提供的各個實施例,至少具有如下有益效果:
[0090]1、本發(fā)明實施例中,在單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫,在接收到客戶端發(fā)送的訪問請求后判斷訪問請求是否為寫訪問請求,如果是將訪問請求發(fā)送給主應(yīng)用數(shù)據(jù)庫進行處理,否則將訪問請求發(fā)送給從應(yīng)用數(shù)據(jù)庫進行處理,每次主應(yīng)用數(shù)據(jù)庫處理訪問請求后都將主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新到各個從應(yīng)用數(shù)據(jù)庫中。這樣,通過對訪問請求進行讀寫分離,讀訪問請求和寫訪問請求分別由不同的應(yīng)用數(shù)據(jù)庫進行處理,能夠同時對多個訪問請求進行處理,從而提高了單臺數(shù)據(jù)庫的高并發(fā)處理能力。
[0091]2、本發(fā)明實施例中,在單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫,由于一般情況下數(shù)據(jù)庫接收到的讀訪問請求要多于接收到的寫訪問請求,因而可以創(chuàng)建多個從應(yīng)用數(shù)據(jù)庫用于處理讀訪問請求,提高數(shù)據(jù)庫對訪問請求的處理速度,防止數(shù)據(jù)庫在高并發(fā)狀態(tài)下發(fā)生宕機。
[0092]3、本發(fā)明實施例中,在將讀訪問請求發(fā)送給從應(yīng)用數(shù)據(jù)庫時,首先對各個從應(yīng)用數(shù)據(jù)庫的負(fù)載進行檢測,確定出負(fù)載最小的從應(yīng)用數(shù)據(jù)庫用于處理新接收到的讀訪問請求,這樣可以平衡各個從應(yīng)用數(shù)據(jù)庫的負(fù)載,縮短讀訪問請求的處理等待時間,從而提高了數(shù)據(jù)庫對高并發(fā)處理的能力。
[0093]4、本發(fā)明實施例中,主應(yīng)用數(shù)據(jù)庫對寫訪問請求進行處理后,將主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新到各個從應(yīng)用數(shù)據(jù)庫中,使各個從應(yīng)用數(shù)據(jù)庫中數(shù)據(jù)與主應(yīng)用數(shù)據(jù)庫中數(shù)據(jù)的相同,保證各個從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)都是最新的,從而讀訪問請求獲取到的數(shù)據(jù)也是最新的,保證數(shù)據(jù)庫能夠的正常性。[〇〇94]需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素, 而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。[〇〇95]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。[〇〇96]最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、 等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。
【主權(quán)項】
1.一種提高單臺數(shù)據(jù)庫并發(fā)處理能力的方法,其特征在于,包括:在所述單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù)據(jù)庫;實時接收客戶端發(fā)送的訪問請求;判斷所述訪問請求是否為寫訪問請求;如果是,將所述訪問請求發(fā)送給所述主應(yīng)用數(shù)據(jù)庫,通過所述主應(yīng)用數(shù)據(jù)庫處理所述 訪問請求,并將處理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至各個所述從應(yīng)用數(shù) 據(jù)庫中;如果否,將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫,通過所述從應(yīng)用數(shù)據(jù)庫處理所述 訪問請求。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫包括:依次檢測所述至少一個從應(yīng)用數(shù)據(jù)庫的負(fù)載情況,從所述至少一個從應(yīng)用數(shù)據(jù)庫中確 定出負(fù)載最小的一個從應(yīng)用數(shù)據(jù)庫作為目標(biāo)從應(yīng)用數(shù)據(jù)庫,將所述訪問請求發(fā)送給所述目 標(biāo)從應(yīng)用數(shù)據(jù)庫,其中,若所述單臺數(shù)據(jù)庫上僅包括一個從應(yīng)用數(shù)據(jù)庫,則該從應(yīng)用數(shù)據(jù)庫 的負(fù)載最小。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將處理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至各個所述從應(yīng)用數(shù)據(jù) 庫中包括:獲取所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求時產(chǎn)生的操作日志,將所述操作日志分別發(fā) 送給各個所述從應(yīng)用數(shù)據(jù)庫,使各個所述從應(yīng)用數(shù)據(jù)庫根據(jù)所述操作日志對相應(yīng)數(shù)據(jù)進行 寫操作,以使各個所述從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)與所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)相同。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述訪問請求是否為寫訪問請求包括:獲取所述訪問請求的報文,對所述報文進行分析,判斷所述報文中是否包括代表更 新、插入或刪除的關(guān)鍵詞,如果是,確定所述訪問請求為寫訪問請求,否則確定所述訪問請 求為讀訪問請求。5.根據(jù)權(quán)利要求1至4中任一所述的方法,其特征在于,所述寫訪問請求包括:更新訪問請求、插入訪問請求或刪除訪問請求。6.—種提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置,其特征在于,包括:創(chuàng)建單元、讀寫分離 單元及執(zhí)行單元;所述創(chuàng)建單元,用于在所述單臺數(shù)據(jù)庫上創(chuàng)建一個主應(yīng)用數(shù)據(jù)庫和至少一個從應(yīng)用數(shù) 據(jù)庫;所述讀寫分離單元,用于實時接收客戶端發(fā)送的訪問請求,并判斷所述訪問請求是否 為寫訪問請求;所述執(zhí)行單元,用于根據(jù)所述讀寫分離單元的判斷結(jié)果,如果是,將所述訪問請求發(fā)送 給所述創(chuàng)建單元創(chuàng)建的主應(yīng)用數(shù)據(jù)庫,通過所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求,并將處 理所述訪問請求后所述主應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)更新至所述創(chuàng)建單元創(chuàng)建的各個從應(yīng)用數(shù) 據(jù)庫中;如果否,將所述訪問請求發(fā)送給所述從應(yīng)用數(shù)據(jù)庫,通過所述從應(yīng)用數(shù)據(jù)庫處理所 述訪問請求。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述執(zhí)行單元,用于依次檢測所述至少一個從應(yīng)用數(shù)據(jù)庫的負(fù)載情況,從所述至少一 個從應(yīng)用數(shù)據(jù)庫中確定出負(fù)載最小的一個從應(yīng)用數(shù)據(jù)庫作為目標(biāo)應(yīng)用數(shù)據(jù)庫,將所述訪問 請求發(fā)送給所述目標(biāo)從應(yīng)用數(shù)據(jù)庫,其中,若所述單臺服務(wù)器上僅包括一個從應(yīng)用數(shù)據(jù)庫, 則該從應(yīng)用數(shù)據(jù)庫的負(fù)載最小。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述執(zhí)行單元,用于獲取所述主應(yīng)用數(shù)據(jù)庫處理所述訪問請求時產(chǎn)生的操作日志,將 所述操作日志分別發(fā)送給各個所述從應(yīng)用數(shù)據(jù)庫,使各個所述從應(yīng)用數(shù)據(jù)庫根據(jù)所述操作 日志對相應(yīng)數(shù)據(jù)進行寫操作,以使各個所述從應(yīng)用數(shù)據(jù)庫中的數(shù)據(jù)與所述主應(yīng)用數(shù)據(jù)庫中 的數(shù)據(jù)相同。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述讀寫分離單元,用于獲取所述訪問請求的報文,對所述報文進行分析,判斷所述 報文中是否包括代表更新、插入或刪除的關(guān)鍵詞,如果是,確定所述訪問請求為寫訪問請 求,否則確定所述訪問請求為讀訪問請求。10.—種提高單臺數(shù)據(jù)庫并發(fā)處理能力的系統(tǒng),其特征在于,包括:單臺數(shù)據(jù)庫、至少一 個客戶端以及權(quán)利要求6至9中任一所述的提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置;所述單臺數(shù)據(jù)庫,用于接收所述提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置發(fā)送的訪問請 求,并對所述訪問請求進行處理;所述客戶端,用于向所述提高單臺數(shù)據(jù)庫并發(fā)處理能力的裝置發(fā)送訪問請求。
【文檔編號】G06F17/30GK106021566SQ201610377149
【公開日】2016年10月12日
【申請日】2016年5月31日
【發(fā)明人】劉增輝
【申請人】浪潮電子信息產(chǎn)業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
萝北县| 平南县| 上林县| 贺兰县| 沅江市| 五家渠市| 蒙自县| 车致| 武鸣县| 长宁区| 湖南省| 东兰县| 融水| 清原| 旬邑县| 东乡| 大厂| 乌鲁木齐市| 柯坪县| 留坝县| 兴山县| 榆中县| 江城| 大余县| 偃师市| 芒康县| 米林县| 贺兰县| 米脂县| 大理市| 团风县| 葵青区| 临武县| 邯郸市| 黄平县| 游戏| 万年县| 四会市| 万源市| 黄骅市| 嵩明县|