本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及數(shù)據(jù)請(qǐng)求處理方法及裝置。
背景技術(shù):
云盤是互聯(lián)網(wǎng)存儲(chǔ)工具,它通過(guò)互聯(lián)網(wǎng)為企業(yè)和個(gè)人提供信息的儲(chǔ)存、讀取、下載等服務(wù)。相對(duì)于傳統(tǒng)的實(shí)體磁盤來(lái)說(shuō)云盤更方便,用戶不需要把儲(chǔ)存資料的實(shí)體磁盤帶在身上,卻一樣可以通過(guò)互聯(lián)網(wǎng),輕松從云端讀取自己所存儲(chǔ)的信息。
目前,現(xiàn)有的云盤服務(wù)端的數(shù)據(jù)庫(kù)結(jié)構(gòu)大多為單個(gè)數(shù)據(jù)庫(kù)和單張表的結(jié)構(gòu),所有用戶存儲(chǔ)在云盤的數(shù)據(jù)均集中在一個(gè)數(shù)據(jù)庫(kù)中。用戶的讀操作和寫操作均由該數(shù)據(jù)庫(kù)處理。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn):當(dāng)大量的讀操作或?qū)懖僮鞑l(fā)時(shí),數(shù)據(jù)庫(kù)需處理的數(shù)據(jù)請(qǐng)求會(huì)非常的多,數(shù)據(jù)庫(kù)的延遲問(wèn)題也會(huì)凸顯。單個(gè)數(shù)據(jù)庫(kù)的并發(fā)量大概在2000左右,當(dāng)并發(fā)量嚴(yán)重超過(guò)時(shí),會(huì)嚴(yán)重影響到數(shù)據(jù)庫(kù)的穩(wěn)定性甚至不能正常工作??梢?jiàn),隨著云盤用戶量的不斷增長(zhǎng),現(xiàn)有的單個(gè)數(shù)據(jù)庫(kù)和單張表的結(jié)構(gòu)已遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)有的使用需求,亟需提供一種新的技術(shù)方案以提高云盤的并發(fā)量。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)請(qǐng)求處理方法及裝置,用以解決現(xiàn)有技術(shù)中數(shù)據(jù)并發(fā)量低的問(wèn)題。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)請(qǐng)求處理方法,包括:
獲取發(fā)起數(shù)據(jù)請(qǐng)求的用戶的屬性信息;
根據(jù)所述屬性信息,選定數(shù)據(jù)庫(kù)集群、所述數(shù)據(jù)庫(kù)集群中的數(shù)據(jù)庫(kù)以及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表;
將所述數(shù)據(jù)請(qǐng)求發(fā)送至所述數(shù)據(jù)表處理。
本發(fā)明還提供了一種數(shù)據(jù)請(qǐng)求處理裝置,包括:
獲取模塊,用于獲取發(fā)起數(shù)據(jù)請(qǐng)求的用戶的屬性信息;
選擇模塊,用于根據(jù)所述屬性信息,選定數(shù)據(jù)庫(kù)集群、所述數(shù)據(jù)庫(kù)集群中的數(shù)據(jù)庫(kù)以及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表;
發(fā)送模塊,用于將所述數(shù)據(jù)請(qǐng)求發(fā)送至所述數(shù)據(jù)表處理。
本發(fā)明實(shí)施例提供的數(shù)據(jù)請(qǐng)求處理方法及裝置,通過(guò)獲取用戶的屬性信息,并根據(jù)該屬性信息來(lái)選定數(shù)據(jù)庫(kù)集群,然后在所述數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù)及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,實(shí)現(xiàn)了分庫(kù)分表的數(shù)據(jù)庫(kù)結(jié)構(gòu),以將不同用戶請(qǐng)求劃分到不同的數(shù)據(jù)集群,并將劃分到同一數(shù)據(jù)集群的不同用戶請(qǐng)求分散到不同的數(shù)據(jù)庫(kù)的不同數(shù)據(jù)表中,當(dāng)有大并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí),可由不同數(shù)據(jù)庫(kù)來(lái)處理,進(jìn)而有效的提高了云盤服務(wù)端的并發(fā)量。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)集群的示例圖;
圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)請(qǐng)求處理方法的流程圖;
圖3為本發(fā)明實(shí)施例二提供的數(shù)據(jù)請(qǐng)求處理方法的流程圖;
圖4為本發(fā)明實(shí)施例三提供的數(shù)據(jù)請(qǐng)求處理裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實(shí)施例四提供的數(shù)據(jù)請(qǐng)求處理裝置的結(jié)構(gòu)示意圖;
圖6示出了本發(fā)明實(shí)施例五提供的執(zhí)行數(shù)據(jù)請(qǐng)求處理方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
首先結(jié)合圖1介紹本發(fā)明實(shí)施例提供的數(shù)據(jù)請(qǐng)求處理方法可適用的應(yīng)用場(chǎng)景。
本發(fā)明實(shí)施例提供的數(shù)據(jù)請(qǐng)求處理方法適用的云盤服務(wù)端的數(shù)據(jù)庫(kù)結(jié)構(gòu)可包括多個(gè)數(shù)據(jù)庫(kù)集群10,每個(gè)數(shù)據(jù)庫(kù)集群10包含有多個(gè)數(shù)據(jù)庫(kù)11,每個(gè)數(shù)據(jù)庫(kù)11中按照其自身的性能配置有相應(yīng)數(shù)量的數(shù)據(jù)表。多個(gè)數(shù)據(jù)庫(kù)集群使用統(tǒng)一的接口(例如可以是圖1中的主數(shù)據(jù)庫(kù))向用戶提供服務(wù),其可利用保存在多個(gè)數(shù)據(jù)庫(kù)后端節(jié)點(diǎn)上的數(shù)據(jù)副本獲得更高的可用性;并利用多個(gè)數(shù)據(jù)庫(kù)后端節(jié)點(diǎn)提供單一數(shù)據(jù)庫(kù)系統(tǒng)所無(wú)法提供的更強(qiáng)大的數(shù)據(jù)管理能力和更高的查詢響應(yīng)效率。
其中,在數(shù)據(jù)庫(kù)集群層中,每個(gè)數(shù)據(jù)庫(kù)集群包含的多個(gè)數(shù)據(jù)庫(kù)可采用主/從(master/slave)結(jié)構(gòu)、多主/多從結(jié)構(gòu)或多主結(jié)構(gòu)。其中,主/從(master/slave)結(jié)構(gòu)即包含有一個(gè)作為master的數(shù)據(jù)庫(kù),以及一個(gè)或多個(gè)作為slave的數(shù)據(jù)庫(kù)。多主/多從結(jié)構(gòu)即包含有多個(gè)作為master的數(shù)據(jù)庫(kù),以及多個(gè)作為slave的數(shù)據(jù)庫(kù)。多主結(jié)構(gòu)即包含有多個(gè)作為master的數(shù)據(jù)庫(kù)。對(duì)于master角色的數(shù)據(jù)庫(kù)可以承擔(dān)讀寫操作,對(duì)于slave角色的數(shù)據(jù)庫(kù)只承擔(dān)讀操作,以及在master數(shù)據(jù)庫(kù)發(fā)生故障后,接管一些處理任務(wù)。
本發(fā)明實(shí)施例提供的技術(shù)方案基于上述數(shù)據(jù)庫(kù)結(jié)構(gòu),實(shí)現(xiàn)了分庫(kù)分表的數(shù)據(jù)庫(kù)結(jié)構(gòu)。相比現(xiàn)有技術(shù)中的單數(shù)據(jù)庫(kù)單表的結(jié)構(gòu),分庫(kù)分表的結(jié)構(gòu)可實(shí)現(xiàn)將不同用戶請(qǐng)求劃分到不同的數(shù)據(jù)集群,并將劃分到同一數(shù)據(jù)集群的不同用戶請(qǐng)求分散到不同的數(shù)據(jù)庫(kù)的不同數(shù)據(jù)表中,當(dāng)有大并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí),可由不同數(shù)據(jù)庫(kù)來(lái)處理,進(jìn)而有效的提高了云盤服務(wù)端的并發(fā)量。
圖2示出了本發(fā)明實(shí)施例一提供的數(shù)據(jù)請(qǐng)求處理方法的流程示意圖。本實(shí)施例提供的所述方法的執(zhí)行主體可以是數(shù)據(jù)請(qǐng)求處理裝置,該數(shù)據(jù)請(qǐng)求處理裝置可以是安裝在數(shù)據(jù)庫(kù)集群中一個(gè)具體的具有嵌入式程序的硬件,也可以是安裝在數(shù)據(jù)庫(kù)集群中的一個(gè)應(yīng)用軟件(應(yīng)用工具,APP),還可以是嵌入在操作系統(tǒng)中的工具軟件。該數(shù)據(jù)請(qǐng)求處理裝置也可以是數(shù)據(jù)集群中的一個(gè)功能模塊,本發(fā)明實(shí)施例對(duì)此不進(jìn)行限定。如圖1所示,本實(shí)施例一提供的所述方法,包括:
步驟101、獲取發(fā)起數(shù)據(jù)請(qǐng)求的用戶的屬性信息。
其中,用戶發(fā)起的所述數(shù)據(jù)請(qǐng)求中可攜帶用戶的標(biāo)識(shí)。在具體實(shí)施時(shí),所述用戶的標(biāo)識(shí)可以是用戶的注冊(cè)名、用戶的統(tǒng)一資源定位符(Uniform Resource Locator,URL)或用戶的IP地址等等,本發(fā)明對(duì)此不作具體限定。
可選的,所述用戶的屬性信息可以是用戶所屬的批次屬性和業(yè)務(wù)屬性。其中,批次屬性是表征用戶屬于哪一批用戶的信息,簡(jiǎn)單的說(shuō)就是表征用戶是新用戶,還是老用戶。業(yè)務(wù)屬性是用來(lái)表征用戶的數(shù)據(jù)業(yè)務(wù)量的信息,簡(jiǎn)單的說(shuō)就是表征用戶是屬于需求大數(shù)據(jù)量業(yè)務(wù)的用戶,還是需求小數(shù)據(jù)量業(yè)務(wù)的用戶。具體的,可根據(jù)預(yù)設(shè)的判斷規(guī)則來(lái)確定,如用戶上傳云端的數(shù)據(jù)量的大小,用戶訪問(wèn)的頻繁度等,本發(fā)明實(shí)施例對(duì)此不作具體限定。當(dāng)然,用戶可以在發(fā)起數(shù)據(jù)請(qǐng)求時(shí),即在數(shù)據(jù)請(qǐng)求中攜帶業(yè)務(wù)請(qǐng)求類型,以向服務(wù)端申請(qǐng)相應(yīng)的業(yè)務(wù)量服務(wù)。
步驟102、根據(jù)所述屬性信息,選定數(shù)據(jù)庫(kù)集群、所述數(shù)據(jù)庫(kù)集群中的數(shù)據(jù)庫(kù)以及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表。
其中,可選的,所述屬性信息可包括:業(yè)務(wù)屬性和批次屬性。在具體實(shí)施時(shí),即根據(jù)業(yè)務(wù)屬性和批次屬性,在數(shù)據(jù)庫(kù)集群系統(tǒng)(如圖1所示的系統(tǒng))中選定數(shù)據(jù)庫(kù)集群、所述數(shù)據(jù)庫(kù)集群中的數(shù)據(jù)庫(kù)以及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表。
實(shí)際上,大數(shù)據(jù)量業(yè)務(wù)的用戶發(fā)起數(shù)據(jù)請(qǐng)求后,數(shù)據(jù)庫(kù)集群處理該業(yè)務(wù)類型的用戶的請(qǐng)求所需占用的資源相對(duì)于其他小數(shù)據(jù)量業(yè)務(wù)的用戶要多。因此,若采用現(xiàn)有技術(shù)將所有數(shù)據(jù)集中在一個(gè)數(shù)據(jù)庫(kù)中,這樣當(dāng)出現(xiàn)高并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí),特別是還包含有大數(shù)據(jù)量業(yè)務(wù)的用戶的請(qǐng)求,此時(shí)數(shù)據(jù)庫(kù)極易出現(xiàn)延遲問(wèn)題,且當(dāng)并發(fā)量嚴(yán)重超過(guò)數(shù)據(jù)庫(kù)的并發(fā)量閾值時(shí),就會(huì)嚴(yán)重影響到數(shù)據(jù)庫(kù)的穩(wěn)定性甚至不能正常工作。而本發(fā)明實(shí)施例提供的技術(shù)方案可將相同業(yè)務(wù)屬性的用戶請(qǐng)求分散到不同的數(shù)據(jù)庫(kù)集群或者直接將業(yè)務(wù)屬性為大數(shù)據(jù)量業(yè)務(wù)的用戶請(qǐng)求分散到不同的數(shù)據(jù)庫(kù)集群中,可有效的避免將同屬于大數(shù)據(jù)量業(yè)務(wù)的用戶請(qǐng)求處于同一數(shù)據(jù)庫(kù)集群中,當(dāng)出現(xiàn)高并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí)該數(shù)據(jù)庫(kù)集群因嚴(yán)重延遲而發(fā)生故障進(jìn)而影響該數(shù)據(jù)庫(kù)集群中其他用戶使用的情況,降低了數(shù)據(jù)庫(kù)集群因高并發(fā)量引起的故障率。
步驟103、將所述數(shù)據(jù)請(qǐng)求發(fā)送至所述數(shù)據(jù)表處理。
具體的,若所述數(shù)據(jù)請(qǐng)求為寫請(qǐng)求時(shí),所述數(shù)據(jù)請(qǐng)求發(fā)送至所述數(shù)據(jù)表后,將所述用戶的數(shù)據(jù)存儲(chǔ)在所述數(shù)據(jù)表中。若所述數(shù)據(jù)請(qǐng)求為讀請(qǐng)求時(shí),所述數(shù)據(jù)請(qǐng)求發(fā)送至所述數(shù)據(jù)后,從所述數(shù)據(jù)表中調(diào)取相應(yīng)的數(shù)據(jù)。
本發(fā)明實(shí)施例提供的技術(shù)方案,根據(jù)用戶的屬性信息,選定數(shù)據(jù)庫(kù)集群,并在所述數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù)及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,實(shí)現(xiàn)了分庫(kù)分表的數(shù)據(jù)庫(kù)結(jié)構(gòu),以將不同用戶請(qǐng)求劃分到不同的數(shù)據(jù)集群,并將劃分到同一數(shù)據(jù)集群的不同用戶請(qǐng)求分散到不同的數(shù)據(jù)庫(kù)的不同數(shù)據(jù)表中,當(dāng)有大并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí),可由不同數(shù)據(jù)庫(kù)來(lái)處理,進(jìn)而有效的提高了云盤服務(wù)端的并發(fā)量。
如圖3所示,本發(fā)明實(shí)施例二提供的數(shù)據(jù)請(qǐng)求處理方法的流程示意圖。如圖3所示,本實(shí)施例二提供的所述方法,包括:
步驟201、接收用戶發(fā)送的數(shù)據(jù)請(qǐng)求。
其中,所述數(shù)據(jù)請(qǐng)求攜帶有用戶標(biāo)識(shí)。所述用戶的標(biāo)識(shí)可以是用戶的注冊(cè)名、用戶的統(tǒng)一資源定位符(Uniform Resource Locator,URL)或用戶的IP地址等等,本發(fā)明對(duì)此不作具體限定。所述數(shù)據(jù)請(qǐng)求還可攜帶有業(yè)務(wù)請(qǐng)求類型。
步驟202、根據(jù)所述用戶發(fā)起的所述數(shù)據(jù)請(qǐng)求中攜帶的業(yè)務(wù)請(qǐng)求類型,確定所述用戶的業(yè)務(wù)屬性。
其中,業(yè)務(wù)屬性是用來(lái)表征用戶的數(shù)據(jù)業(yè)務(wù)量的信息,簡(jiǎn)單的說(shuō)就是表征用戶是屬于需求大數(shù)據(jù)量業(yè)務(wù)的用戶,還是需求小數(shù)據(jù)量業(yè)務(wù)的用戶。用戶可在發(fā)起數(shù)據(jù)請(qǐng)求時(shí)向服務(wù)端申請(qǐng)其所需的業(yè)務(wù)請(qǐng)求類型,以得到相應(yīng)的業(yè)務(wù)量服務(wù)。例如,所述業(yè)務(wù)請(qǐng)求類型可以是大數(shù)據(jù)量業(yè)務(wù)類型、小數(shù)據(jù)量業(yè)務(wù)類型等等,本發(fā)明實(shí)施例對(duì)此不作具體限定。
步驟203、根據(jù)所述用戶發(fā)起的所述數(shù)據(jù)請(qǐng)求中攜帶的用戶標(biāo)識(shí),獲取所述用戶的注冊(cè)信息,并根據(jù)所述注冊(cè)信息確定所述用戶的批次屬性。
在具體實(shí)施時(shí),用戶在進(jìn)行注冊(cè)時(shí),其上傳的注冊(cè)信息會(huì)與用戶的標(biāo)識(shí)進(jìn)行對(duì)應(yīng)存儲(chǔ)。其中,所述注冊(cè)信息可包括如下的任意一種或多種:用戶名(可作為用戶的標(biāo)識(shí))、性別、年齡、手機(jī)號(hào)、郵箱、行業(yè)和學(xué)歷等等。用戶通過(guò)網(wǎng)頁(yè)上的注冊(cè)表上傳注冊(cè)信息后,系統(tǒng)會(huì)記錄用戶上傳的時(shí)間,并將該時(shí)間作為用戶的注冊(cè)時(shí)間,并將該注冊(cè)時(shí)間與用戶上傳的信息統(tǒng)一作為注冊(cè)信息進(jìn)行存儲(chǔ),以備后續(xù)調(diào)取使用。
可選的,上述步驟中的所述根據(jù)所述注冊(cè)信息確定所述用戶的批次屬性,可由下述步驟實(shí)現(xiàn):
首先,提取所述注冊(cè)信息中包含的注冊(cè)時(shí)間。
然后,確定所述注冊(cè)時(shí)間所在的批次區(qū)間。
在具體實(shí)施時(shí),可預(yù)先劃出一些時(shí)間段作為批次區(qū)間。例如,2016年1月1日0時(shí)至2016年3月31日24時(shí)為批次區(qū)間1,2016年4月1日0時(shí)至2016年6月30日24時(shí)為批次區(qū)間2,等等。假設(shè)用戶的注冊(cè)時(shí)間為2016年2月8日,則確定出的所述注冊(cè)時(shí)間所在的批次區(qū)間為批次區(qū)間1。
最后,根據(jù)所述批次區(qū)間,確定所述用戶的批次屬性。
在具體實(shí)施時(shí),對(duì)應(yīng)不同的批次區(qū)間會(huì)為用戶確定不同的批次屬性。例如,預(yù)先為各批次區(qū)間設(shè)定相應(yīng)的批次屬性,并將批次區(qū)間與其相對(duì)應(yīng)的批次屬性進(jìn)行關(guān)聯(lián)存儲(chǔ)。根據(jù)預(yù)設(shè)的批次區(qū)間與批次屬性的對(duì)應(yīng)關(guān)系,獲取所述批次區(qū)間對(duì)應(yīng)的批次屬性,該批次屬性即為所述用戶確定的批次屬性。
例如下表1所示的預(yù)設(shè)的批次區(qū)間與批次屬性的對(duì)應(yīng)關(guān)系列表
表1、預(yù)設(shè)的批次區(qū)間與批次屬性的對(duì)應(yīng)關(guān)系
假設(shè),根據(jù)所述注冊(cè)時(shí)間確定出的批次區(qū)間為批次區(qū)間1,則根據(jù)上述表1示出的預(yù)設(shè)的批次區(qū)間與批次屬性的對(duì)應(yīng)關(guān)系,可獲取到所述批次區(qū)間1的批次屬性為第一批次。
步驟204、根據(jù)所述業(yè)務(wù)屬性,按照預(yù)設(shè)的業(yè)務(wù)均衡策略選定數(shù)據(jù)庫(kù)集群。
具體的,所述預(yù)設(shè)的業(yè)務(wù)均衡策略可包括如下規(guī)則:
規(guī)則1、將具有相同業(yè)務(wù)屬性的用戶分散到不同的數(shù)據(jù)庫(kù)集群;或者
規(guī)則2、將業(yè)務(wù)屬性為大數(shù)據(jù)量業(yè)務(wù)的用戶分散到不同數(shù)據(jù)庫(kù)集群中。
步驟205、判斷選定的數(shù)據(jù)庫(kù)集群的已存儲(chǔ)數(shù)據(jù)量是否大于預(yù)設(shè)閾值,若是,則執(zhí)行步驟206~207;否則,執(zhí)行步驟208~209。
其中,所述預(yù)設(shè)閾值可以根據(jù)實(shí)際使用情況人為設(shè)定,本發(fā)明實(shí)施例對(duì)該預(yù)設(shè)閾值的具體值不作具體限定。
步驟206、根據(jù)所述批次屬性,在所述數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù)。
其中,所述數(shù)據(jù)集群中包含有多個(gè)數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)中可對(duì)應(yīng)同一批次屬性的用戶。簡(jiǎn)言之,新用戶與舊用戶的數(shù)據(jù)處于不同的數(shù)據(jù)庫(kù)中。這樣可實(shí)現(xiàn)將新增的活躍用戶保持在同一數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)中沒(méi)有舊數(shù)據(jù)的累贅,能有效的提高云盤服務(wù)端的業(yè)務(wù)處理性能。相對(duì)新增的新用戶,舊用戶都集中到一個(gè)數(shù)據(jù)庫(kù)中,其性能使用穩(wěn)定靠譜,舊用戶特點(diǎn)也明確,使用頻度也歸于可控,不會(huì)有特別集中的使用頻率,完全的滿足舊用戶舊集群的用戶使用。
步驟207、按照預(yù)設(shè)的負(fù)載均衡策略,在所述數(shù)據(jù)庫(kù)中選定數(shù)據(jù)表。
基于上述步驟,即可將不同批次的用戶均勻的指向到不同的數(shù)據(jù)庫(kù)的不同數(shù)據(jù)表中,當(dāng)有大并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí),可由不同的數(shù)據(jù)表處理,這樣就能有效的提高云盤服務(wù)端的并發(fā)量。
這里需要說(shuō)明的是:每個(gè)數(shù)據(jù)庫(kù)配置多少?gòu)埍砜筛鶕?jù)該數(shù)據(jù)庫(kù)的自身性能進(jìn)行拆分。即,首先獲取數(shù)據(jù)庫(kù)的性能信息;然后根據(jù)所述性能信息為所述數(shù)據(jù)庫(kù)配置相應(yīng)數(shù)量的數(shù)據(jù)表。
基于上述技術(shù)方案可知,用戶被分配到不同的數(shù)據(jù)庫(kù)集群中,單個(gè)數(shù)據(jù)庫(kù)引起的故障造成的影響范圍也被限制在了單個(gè)數(shù)據(jù)庫(kù)集群中,不再會(huì)造成整個(gè)服務(wù)所有的用戶受到影響,服務(wù)的故障率也會(huì)有很大程度的降低。
步驟208、添加新的數(shù)據(jù)庫(kù)集群,在所述新的數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù)。
步驟209、根據(jù)所述數(shù)據(jù)庫(kù)的性能,為所述數(shù)據(jù)庫(kù)分配相應(yīng)數(shù)量的數(shù)據(jù)表,并將其中一個(gè)數(shù)據(jù)表作為選定的數(shù)據(jù)表。
其中,所述數(shù)據(jù)庫(kù)的性能可以是數(shù)據(jù)量的存儲(chǔ)容量,數(shù)據(jù)庫(kù)的數(shù)據(jù)處理性能等,本發(fā)明實(shí)施例對(duì)此不作具體限定。
本發(fā)明實(shí)施例通過(guò)判斷選定的數(shù)據(jù)庫(kù)集群的已存儲(chǔ)數(shù)據(jù)量的大小,以監(jiān)控?cái)?shù)據(jù)庫(kù)集群的數(shù)據(jù)存儲(chǔ)量,降低因數(shù)據(jù)量過(guò)大而引起的高并發(fā)量時(shí)的故障率;另外,在為用戶選定的數(shù)據(jù)庫(kù)集群的已存儲(chǔ)數(shù)據(jù)量大于預(yù)設(shè)閾值時(shí),實(shí)現(xiàn)了一種動(dòng)態(tài)的數(shù)據(jù)庫(kù)集群搭建方案,能夠根據(jù)業(yè)務(wù)的發(fā)展以及用戶量的增長(zhǎng),進(jìn)行數(shù)據(jù)庫(kù)集群的自動(dòng)擴(kuò)容。此外,本發(fā)明實(shí)施例的動(dòng)態(tài)擴(kuò)容機(jī)制,在進(jìn)行數(shù)據(jù)庫(kù)集群的擴(kuò)容時(shí),無(wú)需重寫集群中的用戶分配機(jī)制以及節(jié)點(diǎn)訪問(wèn)規(guī)則,顯著降低了工作量和擴(kuò)容成本。
此外,基于上述技術(shù)方案可知,本發(fā)明實(shí)施例在用戶的增長(zhǎng)上可以做到無(wú)限增長(zhǎng),只需要不斷的增加數(shù)據(jù)庫(kù)集群即可不斷的擴(kuò)展用戶,使得新增用戶分配到新的集群中,不存在用戶的使用過(guò)多,數(shù)據(jù)庫(kù)無(wú)法存儲(chǔ)的尷尬問(wèn)題;另外,每個(gè)存在的用戶都給分配在了一個(gè)優(yōu)質(zhì)環(huán)境的數(shù)據(jù)表中,當(dāng)有高并發(fā)量的數(shù)據(jù)訪問(wèn)時(shí)能有效的降低其故障率。
需要說(shuō)明的是:對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
圖4示出了本發(fā)明實(shí)施例三提供的數(shù)據(jù)請(qǐng)求處理裝置的結(jié)構(gòu)示意圖。本實(shí)施例提供的所述數(shù)據(jù)請(qǐng)求處理裝置可實(shí)現(xiàn)上述實(shí)施例一提供的方法。如圖4所示,本實(shí)施例提供的所述數(shù)據(jù)請(qǐng)求處理裝置包括:獲取模塊30、選擇模塊31和發(fā)送模塊32。其中,
獲取模塊30,用于獲取發(fā)起數(shù)據(jù)請(qǐng)求的用戶的屬性信息;
選擇模塊31,用于根據(jù)所述屬性信息,選定數(shù)據(jù)庫(kù)集群、所述數(shù)據(jù)庫(kù)集群中的數(shù)據(jù)庫(kù)以及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表;
發(fā)送模塊32,用于將所述數(shù)據(jù)請(qǐng)求發(fā)送至所述數(shù)據(jù)表處理。
這里需要說(shuō)明的是,本實(shí)施例提供的所述裝置可實(shí)現(xiàn)上述方法實(shí)施例中提供的技術(shù)方案,具體的實(shí)現(xiàn)原理可參見(jiàn)上述實(shí)施例中的相應(yīng)內(nèi)容,此處不再贅述。
本發(fā)明實(shí)施例提供的技術(shù)方案,根據(jù)用戶的屬性信息,選定數(shù)據(jù)庫(kù)集群,并在所述數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù)以及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,實(shí)現(xiàn)了分庫(kù)分表的數(shù)據(jù)庫(kù)結(jié)構(gòu),以將不同用戶請(qǐng)求劃分到不同的數(shù)據(jù)集群,并將劃分到同一數(shù)據(jù)集群的不同用戶請(qǐng)求分散到不同的數(shù)據(jù)庫(kù)的不同數(shù)據(jù)表中,當(dāng)有大并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí),可由不同數(shù)據(jù)庫(kù)來(lái)處理,進(jìn)而有效的提高了云盤服務(wù)端的并發(fā)量。
圖5示出了本發(fā)明實(shí)施例四提供的數(shù)據(jù)請(qǐng)求處理裝置的結(jié)構(gòu)示意圖。本實(shí)施例四提供的數(shù)據(jù)請(qǐng)求處理裝置可實(shí)現(xiàn)上述實(shí)施例二提供的所述方法。具體的,本實(shí)施例四是基于上述實(shí)施例三的基礎(chǔ)上,其中,所述的獲取模塊可采用如下結(jié)構(gòu)實(shí)現(xiàn)。具體的,所述獲取模塊30包括:獲取單元301、第一確定單元302和第二確定單元303。其中,
獲取單元301,用于根據(jù)所述用戶發(fā)起的所述數(shù)據(jù)請(qǐng)求中攜帶的用戶標(biāo)識(shí),獲取所述用戶的注冊(cè)信息;
第一確定單元302,用于根據(jù)所述注冊(cè)信息確定所述用戶的批次屬性;
第二確定單元303,用于根據(jù)所述用戶發(fā)起的所述數(shù)據(jù)請(qǐng)求中攜帶的業(yè)務(wù)請(qǐng)求類型,確定所述用戶的業(yè)務(wù)屬性。
進(jìn)一步的,所述第一確定單元302,具體用于:
提取所述注冊(cè)信息中包含的注冊(cè)時(shí)間;
獲取所述注冊(cè)時(shí)間所在的批次區(qū)間;
根據(jù)所述批次區(qū)間,確定所述用戶的批次屬性。
進(jìn)一步的,本實(shí)施例中提到的所述屬性信息包括:業(yè)務(wù)屬性和批次屬性;相應(yīng)的,所述選擇模塊31,具體用于:
根據(jù)所述業(yè)務(wù)屬性,按照預(yù)設(shè)的業(yè)務(wù)均衡策略選定數(shù)據(jù)庫(kù)集群;
根據(jù)所述批次屬性,在所述數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù);
按照預(yù)設(shè)的負(fù)載均衡策略,在所述數(shù)據(jù)庫(kù)中選定數(shù)據(jù)表。
進(jìn)一步的,本實(shí)施例提供的所述數(shù)據(jù)請(qǐng)求處理裝置還可包括:添加模塊33和分表模塊34。其中,
添加模塊33,用于當(dāng)根據(jù)所述屬性信息選定的所述數(shù)據(jù)庫(kù)集群的已存儲(chǔ)數(shù)據(jù)量大于第一閾值時(shí),添加新的數(shù)據(jù)庫(kù)集群;
所述選擇模塊31,還用于在所述新的數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù);
分表模塊34,用于根據(jù)所述數(shù)據(jù)庫(kù)的性能,為所述數(shù)據(jù)庫(kù)分配相應(yīng)數(shù)量的數(shù)據(jù)表,并將其中一個(gè)數(shù)據(jù)表作為選定的數(shù)據(jù)表。
本發(fā)明實(shí)施例提供的技術(shù)方案,根據(jù)用戶的屬性信息,選定數(shù)據(jù)庫(kù)集群,并在所述數(shù)據(jù)庫(kù)集群中選定數(shù)據(jù)庫(kù)以及所述數(shù)據(jù)庫(kù)中的數(shù)據(jù)表,實(shí)現(xiàn)了分庫(kù)分表的數(shù)據(jù)庫(kù)結(jié)構(gòu),以將不同用戶請(qǐng)求劃分到不同的數(shù)據(jù)集群,并將劃分到同一數(shù)據(jù)集群的不同用戶請(qǐng)求分散到不同的數(shù)據(jù)庫(kù)的不同數(shù)據(jù)表中,當(dāng)有大并發(fā)量的數(shù)據(jù)請(qǐng)求時(shí),可由不同數(shù)據(jù)庫(kù)來(lái)處理,進(jìn)而有效的提高了云盤服務(wù)端的并發(fā)量。
圖6示出了本發(fā)明實(shí)施例五提供的執(zhí)行數(shù)據(jù)請(qǐng)求處理方法的電子設(shè)備的硬件結(jié)構(gòu)示意圖。本實(shí)施例提供的所述設(shè)備可實(shí)現(xiàn)上述方法實(shí)施例一或?qū)嵤├峁┑募夹g(shù)方案。具體的,所述設(shè)備包括存儲(chǔ)器50以及一個(gè)或者多個(gè)處理器51。圖6中以一個(gè)處理器為例。
執(zhí)行數(shù)據(jù)請(qǐng)求處理方法的設(shè)備還可以包括:輸入裝置52和輸出裝置53。
處理器51、存儲(chǔ)器50、輸入裝置52和輸出裝置53可以通過(guò)總線或者其他方式連接,圖5中以通過(guò)總線連接為例。
存儲(chǔ)器50作為一種非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),可用于存儲(chǔ)非易失性軟件程序、非易失性計(jì)算機(jī)可執(zhí)行程序以及模塊,如本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法對(duì)應(yīng)的程序指令/模塊(例如,附圖4所示的獲取模塊30、選擇模塊31和發(fā)送模塊32)。處理器51通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器50中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述方法實(shí)施例數(shù)據(jù)請(qǐng)求處理方法。
存儲(chǔ)器50可以包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需要的應(yīng)用程序;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)數(shù)據(jù)處理裝置的使用所創(chuàng)建的數(shù)據(jù)等。此外,存儲(chǔ)器50可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他非易失性固態(tài)存儲(chǔ)器件。在一些實(shí)施例中,存儲(chǔ)器50可選包括相對(duì)于處理器51遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過(guò)網(wǎng)絡(luò)連接至數(shù)據(jù)請(qǐng)求處理裝置。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
輸入裝置52可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與數(shù)據(jù)請(qǐng)求處理裝置的功能控制有關(guān)的鍵信號(hào)輸入。輸出裝置53可包括顯示屏等顯示設(shè)備。
所述一個(gè)或者多個(gè)模塊存儲(chǔ)在所述存儲(chǔ)器50中,當(dāng)被所述一個(gè)或者多個(gè)處理器51執(zhí)行時(shí),執(zhí)行上述任意方法實(shí)施例中的數(shù)據(jù)請(qǐng)求處理方法。
上述產(chǎn)品可執(zhí)行本發(fā)明實(shí)施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實(shí)施例中詳盡描述的技術(shù)細(xì)節(jié),可參見(jiàn)本發(fā)明實(shí)施例所提供的方法。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。