專利名稱:一種數(shù)據(jù)庫(kù)信息管理方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及通信技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)庫(kù)信息管理方法和設(shè)備。
背景技術(shù):
隨著信息社會(huì)的發(fā)展和互聯(lián)網(wǎng)應(yīng)用的廣泛普及,越來(lái)越多的信息被數(shù)據(jù)化,尤其 是伴隨著互聯(lián)網(wǎng)(Internet)技術(shù)的發(fā)展,數(shù)據(jù)呈爆炸式增長(zhǎng)。作為網(wǎng)絡(luò)的驅(qū)動(dòng)因素,信息 數(shù)據(jù)正在成為網(wǎng)絡(luò)的核心,數(shù)據(jù)的安全、高效存儲(chǔ)和管理作為網(wǎng)絡(luò)發(fā)展的基礎(chǔ),日益受到人 們的重視,但也正因?yàn)閿?shù)據(jù)量的高速增長(zhǎng),海量數(shù)據(jù)的存儲(chǔ)和訪問(wèn)成為了系統(tǒng)設(shè)計(jì)的瓶頸 問(wèn)題。對(duì)于一個(gè)大型的互聯(lián)網(wǎng)應(yīng)用系統(tǒng),現(xiàn)在每天都需要承受多達(dá)幾十億次的頁(yè)面瀏覽 量(Page View,PV),因此所形成的巨大數(shù)據(jù)流量和數(shù)據(jù)處理量對(duì)數(shù)據(jù)庫(kù)系統(tǒng)造成了相當(dāng)高 的負(fù)載,對(duì)于系統(tǒng)的穩(wěn)定性和擴(kuò)展性造成了極大的負(fù)面影響。在現(xiàn)有的技術(shù)中,主要通過(guò)數(shù)據(jù)切分來(lái)提高網(wǎng)絡(luò)性能,其中,橫向擴(kuò)展數(shù)據(jù)層,即 水平切分?jǐn)?shù)據(jù)庫(kù),已經(jīng)成為架構(gòu)研發(fā)人員首選的網(wǎng)絡(luò)系統(tǒng)構(gòu)建方式。水平切分?jǐn)?shù)據(jù)庫(kù),可以降低單臺(tái)設(shè)備的負(fù)載,通過(guò)負(fù)載均衡策略,有效的降低了單 臺(tái)機(jī)器所承受的訪問(wèn)負(fù)載,降低了該設(shè)備因?yàn)樨?fù)載過(guò)高而宕機(jī)的可能性。同時(shí),水平切分?jǐn)?shù) 據(jù)庫(kù)所形成的負(fù)載分擔(dān)也最大限度的降低了某臺(tái)或某幾臺(tái)設(shè)備宕機(jī)給整個(gè)系統(tǒng)造成的損 失。而另一方面,現(xiàn)有的技術(shù)方案還通過(guò)在多臺(tái)網(wǎng)絡(luò)設(shè)備之間建立集群,進(jìn)行數(shù)據(jù)庫(kù) 負(fù)載分擔(dān)的方案,解決了數(shù)據(jù)庫(kù)宕機(jī)帶來(lái)的單點(diǎn)數(shù)據(jù)庫(kù)不能訪問(wèn)的問(wèn)題。再進(jìn)一步的,現(xiàn)有技術(shù)還通過(guò)讀寫(xiě)分離策略,將需要處理量較大的寫(xiě)操作(Write) 與對(duì)數(shù)據(jù)的讀操作(Read)進(jìn)行分離處理,大幅提高了應(yīng)用中讀取數(shù)據(jù)的速度和并發(fā)量。目前,常見(jiàn)的大型互聯(lián)網(wǎng)應(yīng)用中,大量的采用了這樣的數(shù)據(jù)切分方案,從而實(shí)現(xiàn)了 分布式數(shù)據(jù)訪問(wèn)層(Distributed Data Access Layer, DDAL)的建立。在實(shí)現(xiàn)本申請(qǐng)的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題現(xiàn)有的一些數(shù)據(jù)庫(kù)技術(shù),例如iBATIS,不能夠支持分表分庫(kù)的數(shù)據(jù)庫(kù)訪問(wèn),而應(yīng)用 這些數(shù)據(jù)庫(kù)技術(shù)進(jìn)行處理的業(yè)務(wù)數(shù)據(jù)又是海量的,需要對(duì)表進(jìn)行水平拆分以保證數(shù)據(jù)庫(kù)操 作語(yǔ)句的性能,這樣的矛盾嚴(yán)重影響了數(shù)據(jù)庫(kù)的應(yīng)用體驗(yàn)。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)庫(kù)信息管理方法和設(shè)備,通過(guò)在系統(tǒng)的數(shù)據(jù)中添加數(shù)據(jù)標(biāo) 識(shí),標(biāo)識(shí)出該數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限信息,從而實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的分表分庫(kù)管理。為達(dá)到上述目的,本申請(qǐng)一方面提供了一種數(shù)據(jù)庫(kù)信息管理方法,應(yīng)用于包括一 個(gè)管理服務(wù)器、一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)中,所述管理服務(wù)器為所述數(shù)據(jù) 服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),所述數(shù)據(jù)標(biāo)識(shí)包括所述數(shù)據(jù)的地址信息和所述數(shù)據(jù)的讀寫(xiě) 權(quán)限,所述方法包括
所述應(yīng)用服務(wù)器向所述管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),并在本地進(jìn) 行存儲(chǔ);所述應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)標(biāo)識(shí)中所包含的所述目標(biāo)數(shù)據(jù)的地址信息訪問(wèn)所 述目標(biāo)數(shù)據(jù),并根據(jù)所述數(shù)據(jù)標(biāo)識(shí)中所包含的所述目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán)限,對(duì)所述目標(biāo)數(shù)據(jù) 進(jìn)行相應(yīng)的操作。優(yōu)選的,所述管理服務(wù)器為所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí)之前,還包 括所述管理服務(wù)器根據(jù)預(yù)設(shè)的數(shù)據(jù)庫(kù)管理策略,將所述系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相 應(yīng)的數(shù)據(jù)服務(wù)器中。優(yōu)選的,所述多個(gè)數(shù)據(jù)服務(wù)器組成至少一個(gè)數(shù)據(jù)服務(wù)器群落,所述數(shù)據(jù)服務(wù)器群 落中包含一個(gè)主數(shù)據(jù)服務(wù)器和至少一個(gè)從數(shù)據(jù)服務(wù)器,所述管理服務(wù)器將所述系統(tǒng)中的數(shù) 據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中,具體為所述管理服務(wù)器根據(jù)所述系統(tǒng)中的數(shù)據(jù)的讀寫(xiě)負(fù)載調(diào)整策略,將所述數(shù)據(jù)分配給 各所述數(shù)據(jù)服務(wù)器群落中相應(yīng)的主數(shù)據(jù)服務(wù)器或從數(shù)據(jù)服務(wù)器進(jìn)行存儲(chǔ);其中,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器群落中的主數(shù)據(jù)服務(wù)器中存儲(chǔ)的 數(shù)據(jù)具有可以進(jìn)行讀操作和/或?qū)懖僮鞯臋?quán)限,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器 群落中的從數(shù)據(jù)服務(wù)器中存儲(chǔ)的數(shù)據(jù)只具有進(jìn)行讀操作的權(quán)限。優(yōu)選的,所述管理服務(wù)器根據(jù)預(yù)設(shè)的數(shù)據(jù)庫(kù)管理策略,將所述系統(tǒng)中的數(shù)據(jù)分別 存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中之后,還包括所述管理服務(wù)器根據(jù)預(yù)設(shè)的容災(zāi)策略,分別為所述系統(tǒng)中全部或部分?jǐn)?shù)據(jù)服務(wù)器 建立備份服務(wù)器,并將所述數(shù)據(jù)服務(wù)器中所存儲(chǔ)的數(shù)據(jù)復(fù)制到相應(yīng)的備份服務(wù)器中。優(yōu)選的,當(dāng)所述數(shù)據(jù)服務(wù)器的數(shù)據(jù)不能被訪問(wèn)時(shí),還包括所述管理服務(wù)器將所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)中所包含的地址 信息變更為所述數(shù)據(jù)服務(wù)器所對(duì)應(yīng)的備份服務(wù)器的地址信息。優(yōu)選的,所述應(yīng)用服務(wù)器向所述管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),具 體為當(dāng)所述應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)所述目標(biāo)數(shù)據(jù)時(shí),所述應(yīng)用服務(wù)器向所 述管理服務(wù)器請(qǐng)求所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),并接收所述管理服務(wù)器所返回的所述目標(biāo)數(shù) 據(jù)的數(shù)據(jù)標(biāo)識(shí);或,當(dāng)所述應(yīng)用服務(wù)器初始化時(shí),所述應(yīng)用服務(wù)器向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng) 前所有數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),并在本地存儲(chǔ),當(dāng)所述應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)所述目 標(biāo)數(shù)據(jù)時(shí),所述應(yīng)用服務(wù)器在本地讀取所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。優(yōu)選的,所述方法還包括如果所述應(yīng)用服務(wù)器是在需要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),向所述管理服務(wù)器獲取所述目標(biāo) 數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),則當(dāng)所述管理服務(wù)器判斷所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)發(fā)生變化時(shí), 所述管理服務(wù)器向所述應(yīng)用服務(wù)器發(fā)送包含新的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新所述應(yīng)用服務(wù) 器所獲取的目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí);如果所述應(yīng)用服務(wù)器是在初始化時(shí),向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng)前所有數(shù) 據(jù)的數(shù)據(jù)標(biāo)識(shí),并在本地進(jìn)行存儲(chǔ),則當(dāng)所述管理服務(wù)器判斷所述系統(tǒng)當(dāng)前的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)發(fā)生變化或有新的數(shù)據(jù)加入所述系統(tǒng)時(shí),所述管理服務(wù)器向所述應(yīng)用服務(wù)器發(fā)送包含 更新的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)或新加入的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新所述應(yīng)用服務(wù)器所獲 取的所述系統(tǒng)當(dāng)前全部數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。另一方面,本申請(qǐng)實(shí)施例還提供了一種應(yīng)用服務(wù)器,應(yīng)用于包括一個(gè)管理服務(wù)器、 一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)中,所述管理服務(wù)器為所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù) 添加數(shù)據(jù)標(biāo)識(shí),所述數(shù)據(jù)標(biāo)識(shí)包括所述數(shù)據(jù)的地址信息和所述數(shù)據(jù)的讀寫(xiě)權(quán)限,包括獲取模塊,用于向所述管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí);識(shí)別模塊,與所述獲取模塊相連接,用于識(shí)別所述獲取模塊所獲取的數(shù)據(jù)標(biāo)識(shí)中 所包含的所述目標(biāo)數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限;處理模塊,與所述識(shí)別模塊相連接,用于根據(jù)所述識(shí)別模塊所識(shí)別的所述目標(biāo)數(shù) 據(jù)的地址信息訪問(wèn)所述目標(biāo)數(shù)據(jù),并根據(jù)所述識(shí)別模塊所識(shí)別的所述目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán) 限,對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行相應(yīng)的操作。優(yōu)選的,所述獲取模塊,具體包括設(shè)置子模塊,用于設(shè)置獲取數(shù)據(jù)標(biāo)識(shí)的策略,其中,所述獲取數(shù)據(jù)標(biāo)識(shí)的策略包 括當(dāng)所述應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),向所述管理服務(wù)器請(qǐng)求所述目 標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),或,當(dāng)所述應(yīng)用服務(wù)器初始化時(shí),向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng)前 所有數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí);獲取子模塊,與所述設(shè)置子模塊相連接,用于根據(jù)所述設(shè)置子模塊所設(shè)置的獲取 數(shù)據(jù)標(biāo)識(shí)的策略,向所述管理服務(wù)器獲取所述目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)。優(yōu)選的,所述獲取模塊,還包括存儲(chǔ)子模塊,與所述獲取子模塊相連接,用于存儲(chǔ)所述獲取子模塊所獲取的所述 目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí);其中,當(dāng)所述設(shè)置子模塊所設(shè)置的獲取數(shù)據(jù)標(biāo)識(shí)的策略為當(dāng)所述應(yīng)用服務(wù)器初始 化時(shí),向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng)前所有數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)時(shí),所述存儲(chǔ)子模塊還用 于存儲(chǔ)所述系統(tǒng)當(dāng)前的其他數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)。優(yōu)選的,所述應(yīng)用服務(wù)器還包括通信模塊,與所述獲取模塊相連接,用于接收所述管理服務(wù)器發(fā)送的包含更新后 的目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)和/或新加入的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新所述獲取 模塊所獲取的目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)或所述系統(tǒng)當(dāng)前全部數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。另一方面,本申請(qǐng)實(shí)施例還提供了一種管理服務(wù)器,應(yīng)用于包括一個(gè)管理服務(wù)器、 一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)中,包括設(shè)置模塊,用于設(shè)置數(shù)據(jù)庫(kù)管理策略和讀寫(xiě)負(fù)載調(diào)整策略;處理模塊,與所述設(shè)置模塊相連接,用于根據(jù)所述設(shè)置模塊所設(shè)置的數(shù)據(jù)庫(kù)管理 策略和讀寫(xiě)負(fù)載調(diào)整策略,將所述系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中;標(biāo)識(shí)模塊,用于根據(jù)所述設(shè)置模塊所設(shè)置的數(shù)據(jù)庫(kù)管理策略和讀寫(xiě)負(fù)載調(diào)整策 略,為各所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),所述數(shù)據(jù)標(biāo)識(shí)包括所述數(shù)據(jù)的地址信息 和所述數(shù)據(jù)的讀寫(xiě)權(quán)限。優(yōu)選的,所述多個(gè)數(shù)據(jù)服務(wù)器組成至少一個(gè)數(shù)據(jù)服務(wù)器群落,所述數(shù)據(jù)服務(wù)器群 落中包含一個(gè)主數(shù)據(jù)服務(wù)器和至少一個(gè)從數(shù)據(jù)服務(wù)器,所述處理模塊根據(jù)所述設(shè)置模塊所設(shè)置的讀寫(xiě)負(fù)載調(diào)整策略,將所述系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中,具體 為所述處理模塊根據(jù)所述設(shè)置模塊所設(shè)置的當(dāng)前系統(tǒng)中的數(shù)據(jù)的讀寫(xiě)負(fù)載調(diào)整策 略,將所述數(shù)據(jù)分配給各所述數(shù)據(jù)服務(wù)器群落中相應(yīng)的主數(shù)據(jù)服務(wù)器或從數(shù)據(jù)服務(wù)器進(jìn)行 存儲(chǔ);其中,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器群落中的主數(shù)據(jù)服務(wù)器中存儲(chǔ)的 數(shù)據(jù)具有可以進(jìn)行讀操作和/或?qū)懖僮鞯臋?quán)限,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器 群落中的從數(shù)據(jù)服務(wù)器中存儲(chǔ)的數(shù)據(jù)只具有進(jìn)行讀操作的權(quán)限。優(yōu)選的,所述設(shè)置模塊,還用于設(shè)置容災(zāi)策略;所述處理模塊,還用于根據(jù)所述設(shè)置模塊所設(shè)置的容災(zāi)策略,分別為所述系統(tǒng)中 全部或部分?jǐn)?shù)據(jù)服務(wù)器建立備份服務(wù)器,并將所述數(shù)據(jù)服務(wù)器中所存儲(chǔ)的數(shù)據(jù)復(fù)制到相應(yīng) 的備份服務(wù)器中。優(yōu)選的,所述管理服務(wù)器還包括調(diào)整模塊,用于當(dāng)所述數(shù)據(jù)服務(wù)器的數(shù)據(jù)不能被訪問(wèn)時(shí),將所述數(shù)據(jù)服務(wù)器中的 數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)中所包含的所述數(shù)據(jù)的地址信息變更為所述數(shù)據(jù)服務(wù)器所對(duì)應(yīng)的 備份服務(wù)器的地址信息。與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)通過(guò)應(yīng)用本申請(qǐng)的技術(shù)方案,可以在系統(tǒng)的數(shù)據(jù)中添加數(shù)據(jù)標(biāo)識(shí),標(biāo)識(shí)出該數(shù)據(jù) 的地址信息和讀寫(xiě)權(quán)限信息,從而可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的分表分庫(kù)管理,并可以根據(jù)系統(tǒng) 中的數(shù)據(jù)庫(kù)管理策略進(jìn)行相應(yīng)的信息調(diào)度,提高系統(tǒng)中的數(shù)據(jù)信息管理效率。
為了更清楚地說(shuō)明本申請(qǐng)或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)本申請(qǐng)或現(xiàn)有技術(shù) 描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的 一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù) 這些附圖獲得其他的附圖。圖1為本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)庫(kù)信息管理方法的流程示意圖;圖2為本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)服務(wù)器集群的結(jié)構(gòu)示意圖;圖3為本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)庫(kù)信息管理方法的應(yīng)用場(chǎng)景的結(jié)構(gòu)示意圖;圖4為本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)庫(kù)信息管理方法的在具體應(yīng)用場(chǎng)景中的流 程示意圖;圖5為本申請(qǐng)實(shí)施例提供的一種應(yīng)用服務(wù)器的結(jié)構(gòu)示意圖;圖6為本申請(qǐng)實(shí)施例提供的一種管理服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式如背景技術(shù)所述,現(xiàn)有的一些數(shù)據(jù)庫(kù)技術(shù),例如iBATIS,并不能支持分表分庫(kù)的數(shù) 據(jù)庫(kù)訪問(wèn),因而,在面對(duì)海量的業(yè)務(wù)數(shù)據(jù)存儲(chǔ)和處理過(guò)程時(shí),尤其是面對(duì)需要對(duì)表進(jìn)行水平 拆分以保證數(shù)據(jù)庫(kù)操作性能的應(yīng)用環(huán)境時(shí),現(xiàn)有的數(shù)據(jù)庫(kù)技術(shù)存在應(yīng)用上的瓶頸。
基于這樣的技術(shù)缺陷,本申請(qǐng)?zhí)岢隽艘环N通過(guò)為數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí)來(lái)解決上述的 現(xiàn)有技術(shù)不足的技術(shù)思路,通過(guò)管理服務(wù)器為數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),以此標(biāo)明了對(duì)應(yīng)數(shù)據(jù)在 當(dāng)前系統(tǒng)中的存儲(chǔ)位置和進(jìn)行讀寫(xiě)操作權(quán)限,應(yīng)用服務(wù)器在需要對(duì)數(shù)據(jù)進(jìn)行操作時(shí),首先 向管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),而后根據(jù)獲取到的數(shù)據(jù)標(biāo)識(shí)對(duì)目標(biāo)數(shù)據(jù)進(jìn) 行操作和管理,并實(shí)現(xiàn)相應(yīng)的應(yīng)用進(jìn)程,其中,當(dāng)前系統(tǒng)可以應(yīng)用分表分庫(kù)的處理,在此基 礎(chǔ)上,數(shù)據(jù)標(biāo)識(shí)中包含了進(jìn)行分表分庫(kù)處理后的數(shù)據(jù)的位置信息,應(yīng)用服務(wù)器可以根據(jù)相 應(yīng)的位置信息在分表分庫(kù)后的系統(tǒng)中,從相應(yīng)的數(shù)據(jù)服務(wù)器中進(jìn)行相應(yīng)數(shù)據(jù)的獲取。本申請(qǐng)實(shí)施例所提出的一種數(shù)據(jù)庫(kù)信息管理方法,應(yīng)用于包括一個(gè)管理服務(wù)器、 一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)中,管理服務(wù)器為數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù) 標(biāo)識(shí),其中,數(shù)據(jù)標(biāo)識(shí)包括數(shù)據(jù)的地址信息和數(shù)據(jù)的讀寫(xiě)權(quán)限。具體如圖1所示,為本申請(qǐng)實(shí)施例提供的一種數(shù)據(jù)庫(kù)信息管理方法的流程示意 圖,具體包括以下步驟步驟S101、管理服務(wù)器為數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),并在本地進(jìn)行存儲(chǔ)。具體的,管理服務(wù)器為數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí)的方式如下在管理服務(wù)器中建立當(dāng)前系統(tǒng)中所有數(shù)據(jù)的數(shù)據(jù)信息列表,在該列表中保存各數(shù) 據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)信息。在數(shù)據(jù)標(biāo)識(shí)中,至少保存了各數(shù)據(jù)所對(duì)應(yīng)的存儲(chǔ)位置信息和讀 寫(xiě)權(quán)限信息,在具體的應(yīng)用場(chǎng)景中,數(shù)據(jù)標(biāo)識(shí)中還可以進(jìn)一步包括數(shù)據(jù)創(chuàng)建或修改的時(shí)間 信息,數(shù)據(jù)本身的大小信息,以及數(shù)據(jù)所具有的其他信息內(nèi)容。其中,存儲(chǔ)位置信息至少包 括數(shù)據(jù)所處的數(shù)據(jù)列表的位置信息和數(shù)據(jù)服務(wù)器的位置信息。例如,一個(gè)十位的存儲(chǔ)位置 信息1234567890,其中的前4位1234表示數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)列表位置信息,中間3位表示數(shù) 據(jù)存儲(chǔ)的數(shù)據(jù)服務(wù)器位置信息,后3位表示數(shù)據(jù)在數(shù)據(jù)列表中的位置信息,當(dāng)然,這只是本 發(fā)明實(shí)施例中優(yōu)選的存儲(chǔ)位置信息方式,還可以是其他代碼或者標(biāo)示符信息。上述信息可以是以具體內(nèi)容的方式直接存儲(chǔ)于數(shù)據(jù)標(biāo)識(shí)中,也可以是以代碼或標(biāo) 示符的方式進(jìn)行存儲(chǔ),但是,在以代碼或標(biāo)示符的方式進(jìn)行存儲(chǔ)的情況下,管理服務(wù)器中需 要建立相應(yīng)的代碼或標(biāo)示符與具體信息內(nèi)容的對(duì)應(yīng)規(guī)則,在能夠?qū)崿F(xiàn)信息記錄的基礎(chǔ)上, 具體應(yīng)用的存儲(chǔ)方式的變化并不影響本發(fā)明的保護(hù)范圍。其中,在管理服務(wù)器為數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí)之前,還包括管理服務(wù) 器根據(jù)預(yù)設(shè)的數(shù)據(jù)庫(kù)管理策略,將系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中。這樣的處理目的就是為了實(shí)現(xiàn)系統(tǒng)中數(shù)據(jù)的分表分庫(kù)處理,從而提高系統(tǒng)中的數(shù) 據(jù)負(fù)載分擔(dān)。在具體的應(yīng)用場(chǎng)景中,上述系統(tǒng)中的多個(gè)數(shù)據(jù)服務(wù)器組成了至少一個(gè)數(shù)據(jù)服務(wù)器 群落,各數(shù)據(jù)服務(wù)器群落中分別包含一個(gè)主數(shù)據(jù)服務(wù)器和至少一個(gè)從數(shù)據(jù)服務(wù)器,管理服 務(wù)器將系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中,具體的存儲(chǔ)流程為管理服務(wù)器根據(jù)系統(tǒng)中的數(shù)據(jù)的讀寫(xiě)負(fù)載調(diào)整策略,將數(shù)據(jù)分配給各數(shù)據(jù)服務(wù)器 群落中相應(yīng)的數(shù)據(jù)服務(wù)器中。其中,讀寫(xiě)負(fù)載調(diào)整策略中關(guān)于分別進(jìn)行讀寫(xiě)操作的數(shù)據(jù)的分配規(guī)則包括管理服務(wù)器將需要進(jìn)行寫(xiě)操作的數(shù)據(jù)分配到各數(shù)據(jù)服務(wù)器群落中的主數(shù)據(jù)服務(wù) 器中;管理服務(wù)器將需要進(jìn)行讀操作的數(shù)據(jù)分配到各數(shù)據(jù)服務(wù)器群落中的從數(shù)據(jù)服務(wù)器中。需要指出的是,上述的兩種分配規(guī)則對(duì)數(shù)據(jù)的操作類型范圍要求不同,對(duì)于存儲(chǔ) 于主數(shù)據(jù)服務(wù)器中的數(shù)據(jù),為具有寫(xiě)操作需求的數(shù)據(jù),但是存儲(chǔ)于主數(shù)據(jù)服務(wù)器中的數(shù)據(jù) 同樣可以進(jìn)行讀操作,但是,與之相對(duì)的,對(duì)于存儲(chǔ)于從數(shù)據(jù)服務(wù)器中的數(shù)據(jù),為具有讀操 作需求的數(shù)據(jù),但是存儲(chǔ)于從數(shù)據(jù)服務(wù)器中的數(shù)據(jù)只能進(jìn)行讀操作,而不能進(jìn)行寫(xiě)操作。這樣進(jìn)行數(shù)據(jù)分配的的好處在于將需要進(jìn)行較大處理量的寫(xiě)操作分配給主數(shù)據(jù) 服務(wù)器來(lái)完成,將需要進(jìn)行的處理量比較小的讀操作分配給從數(shù)據(jù)服務(wù)器來(lái)完成,不僅如 此,由于寫(xiě)操作需要涉及數(shù)據(jù)信息的修改,因此,需要在更高級(jí)別的主數(shù)據(jù)服務(wù)器中進(jìn)行, 這樣便于數(shù)據(jù)的管理和權(quán)限的具體分配。需要進(jìn)一步指出的是,管理服務(wù)器根據(jù)預(yù)設(shè)的數(shù)據(jù)庫(kù)管理策略,將系統(tǒng)中的數(shù)據(jù) 分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中之后,還包括容災(zāi)策略的實(shí)現(xiàn),具體的實(shí)現(xiàn)過(guò)程包括(1)管理服務(wù)器根據(jù)預(yù)設(shè)的容災(zāi)策略,分別為系統(tǒng)中全部或部分?jǐn)?shù)據(jù)服務(wù)器建立 備份服務(wù)器。具體的備份服務(wù)器建立策略可以是在新的服務(wù)器設(shè)備上建立,也可以是在現(xiàn)有的 其他數(shù)據(jù)服務(wù)器中的空余空間中建立。在新的服務(wù)器設(shè)備中建立備份服務(wù)器有利于備份數(shù)據(jù)的獨(dú)立管理,但是需要進(jìn)行 新的設(shè)備投入。在現(xiàn)有的其他數(shù)據(jù)服務(wù)器中的空余空間中建立備份服務(wù)器可以有效的降低成本 投入,但是需要建立相應(yīng)的空間監(jiān)視機(jī)制,保障能夠及時(shí)發(fā)現(xiàn)現(xiàn)有的其他數(shù)據(jù)服務(wù)器中的 空余存儲(chǔ)空間,并保證已被利用作為備份空間的數(shù)據(jù)服務(wù)器空間不會(huì)與其他數(shù)據(jù)的存儲(chǔ)發(fā) 生矛盾。(2)管理服務(wù)器將各數(shù)據(jù)服務(wù)器中所存儲(chǔ)的數(shù)據(jù)復(fù)制到相應(yīng)的備份服務(wù)器中。這樣的數(shù)據(jù)復(fù)制在數(shù)據(jù)服務(wù)器初始化時(shí)會(huì)首先進(jìn)行數(shù)據(jù)備份,在后續(xù)的處理過(guò)程 中,如果一個(gè)或多個(gè)數(shù)據(jù)服務(wù)器中的數(shù)據(jù)發(fā)生了變化,還包括相應(yīng)的數(shù)據(jù)服務(wù)器和備份服 務(wù)器之間的數(shù)據(jù)同步過(guò)程,具體的通過(guò)過(guò)程包括以下三種方案方案一、由管理服務(wù)器進(jìn)行定期的數(shù)據(jù)檢測(cè),并主動(dòng)發(fā)起數(shù)據(jù)服務(wù)器和備份服務(wù) 器之間的數(shù)據(jù)同步操作其中,管理服務(wù)器進(jìn)行數(shù)據(jù)檢測(cè)的檢測(cè)周期可以預(yù)先設(shè)定,具體的檢測(cè)周期的長(zhǎng) 度標(biāo)準(zhǔn)以不致因?yàn)檫^(guò)于頻繁的進(jìn)行數(shù)據(jù)檢測(cè)而影響系統(tǒng)或者相應(yīng)設(shè)備的性能為宜。如果管理服務(wù)器判斷一個(gè)或者多個(gè)數(shù)據(jù)服務(wù)器中的數(shù)據(jù)發(fā)生變化時(shí),將啟動(dòng)相應(yīng) 的數(shù)據(jù)服務(wù)器和備份服務(wù)器之間的數(shù)據(jù)同步操作,以使備份服務(wù)器中的數(shù)據(jù)與數(shù)據(jù)服務(wù)器 中的數(shù)據(jù)信息保持一致。其中,需要指出的是,數(shù)據(jù)同步操作的啟動(dòng)時(shí)間可以是在檢測(cè)發(fā)現(xiàn)數(shù)據(jù)發(fā)生變化 后直接進(jìn)行啟動(dòng),也可以是在判斷發(fā)生變化的數(shù)據(jù)的總量達(dá)到預(yù)設(shè)的閾值后,才統(tǒng)一進(jìn)行 數(shù)據(jù)同步操作,這樣的變化并不影響本申請(qǐng)的保護(hù)范圍。方案二、由數(shù)據(jù)服務(wù)器對(duì)自身的數(shù)據(jù)信息進(jìn)行定期的數(shù)據(jù)檢測(cè),并在發(fā)現(xiàn)數(shù)據(jù)變 化時(shí)向管理服務(wù)器請(qǐng)求發(fā)起該數(shù)據(jù)服務(wù)器和備份服務(wù)器之間的數(shù)據(jù)同步操作需要指出的是,上述的數(shù)據(jù)服務(wù)器進(jìn)行數(shù)據(jù)檢測(cè)以發(fā)現(xiàn)數(shù)據(jù)是否發(fā)生變化的形式 包括直接對(duì)數(shù)據(jù)信息本身進(jìn)行檢測(cè),或?qū)邮盏降臄?shù)據(jù)操作指令進(jìn)行檢測(cè)兩種形式。
第一種檢測(cè)形式具體可以是對(duì)數(shù)據(jù)進(jìn)行掃描,如果發(fā)現(xiàn)數(shù)據(jù)發(fā)生過(guò)變化,或者最 近的修改時(shí)間是在前次數(shù)據(jù)掃描之后發(fā)生的,那么,將判斷該數(shù)據(jù)信息發(fā)生了變更,并向管 理服務(wù)器請(qǐng)求發(fā)起在備份服務(wù)器中對(duì)該數(shù)據(jù)信息的數(shù)據(jù)同步操作過(guò)程。第二種檢測(cè)形式則是對(duì)在最近的一個(gè)檢測(cè)周期內(nèi)所接收到的操作指令的類型進(jìn) 行掃描,如果發(fā)現(xiàn)其中具有數(shù)據(jù)改寫(xiě)功能的操作指令類型(例如寫(xiě)入指令),則向管理服務(wù) 器請(qǐng)求發(fā)起在備份服務(wù)器中對(duì)該操作指令所對(duì)應(yīng)的數(shù)據(jù)信息的數(shù)據(jù)同步操作過(guò)程。上述的兩種檢測(cè)形式的區(qū)別在于具體檢測(cè)對(duì)象的差別,根據(jù)數(shù)據(jù)本身內(nèi)容或?qū)?yīng) 的操作指令類型判斷數(shù)據(jù)是否發(fā)生變化判斷是否向管理服務(wù)器請(qǐng)求發(fā)起在備份服務(wù)器中 對(duì)相應(yīng)的數(shù)據(jù)信息的數(shù)據(jù)同步操作過(guò)程,具體采用哪種檢測(cè)形式并不會(huì)影響本申請(qǐng)的保護(hù) 范圍。其中,需要進(jìn)一步指出的是,上述的數(shù)據(jù)服務(wù)器進(jìn)行數(shù)據(jù)檢測(cè)的檢測(cè)周期可以預(yù) 先設(shè)定,具體的檢測(cè)周期的長(zhǎng)度標(biāo)準(zhǔn)以不致因?yàn)檫^(guò)于頻繁的進(jìn)行數(shù)據(jù)檢測(cè)而影響系統(tǒng)或者 數(shù)據(jù)服務(wù)器本身的性能為宜。如果數(shù)據(jù)服務(wù)器判斷自身的數(shù)據(jù)發(fā)生變化時(shí),將向管理服務(wù)器發(fā)送請(qǐng)求消息,請(qǐng) 求啟動(dòng)自身與相應(yīng)的備份服務(wù)器之間的數(shù)據(jù)同步操作,以使備份服務(wù)器中的數(shù)據(jù)與數(shù)據(jù)服 務(wù)器中的數(shù)據(jù)信息保持一致。其中,需要指出的是,數(shù)據(jù)同步操作的啟動(dòng)時(shí)間可以是在管理服務(wù)器收到數(shù)據(jù)同 步請(qǐng)求后直接進(jìn)行啟動(dòng),也可以是在管理服務(wù)器判斷發(fā)生變化的數(shù)據(jù)的總量達(dá)到預(yù)設(shè)的閾 值后,才統(tǒng)一進(jìn)行數(shù)據(jù)同步操作,這樣的變化并不影響本申請(qǐng)的保護(hù)范圍。方案三、由應(yīng)用服務(wù)器向管理服務(wù)器請(qǐng)求發(fā)起數(shù)據(jù)服務(wù)器和備份服務(wù)器之間的數(shù) 據(jù)同步操作在具體的應(yīng)用過(guò)程中,如果應(yīng)用服務(wù)器對(duì)數(shù)據(jù)服務(wù)器中的數(shù)據(jù)進(jìn)行操作的過(guò)程 中,發(fā)現(xiàn)數(shù)據(jù)信息錯(cuò)誤,或直接判斷不能對(duì)目標(biāo)數(shù)據(jù)信息進(jìn)行讀取,則判斷該數(shù)據(jù)信息需要 更新,從而向管理服務(wù)器請(qǐng)求發(fā)起數(shù)據(jù)服務(wù)器和備份服務(wù)器之間的數(shù)據(jù)同步操作。其中,需要指出的是,數(shù)據(jù)同步操作的啟動(dòng)時(shí)間可以是在管理服務(wù)器接收到應(yīng)用 服務(wù)器發(fā)送的同步請(qǐng)求之后直接進(jìn)行啟動(dòng),也可以是在管理服務(wù)器判斷發(fā)生變化的數(shù)據(jù)的 總量達(dá)到預(yù)設(shè)的閾值后,才統(tǒng)一進(jìn)行數(shù)據(jù)同步操作,這樣的變化并不影響本申請(qǐng)的保護(hù)范 圍。通過(guò)上述的操作流程,可以在系統(tǒng)中為各數(shù)據(jù)服務(wù)器建立相應(yīng)的備份服務(wù)器,并 通過(guò)相應(yīng)的數(shù)據(jù)更新機(jī)制保證數(shù)據(jù)服務(wù)器和備份服務(wù)器之間的數(shù)據(jù)信息保持一致。在建立了備份服務(wù)器的基礎(chǔ)上,當(dāng)管理服務(wù)器或應(yīng)用服務(wù)器判斷數(shù)據(jù)服務(wù)器中的 數(shù)據(jù)不能被訪問(wèn)時(shí),管理服務(wù)器將數(shù)據(jù)服務(wù)器中的數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)中所包含的數(shù)據(jù) 的地址信息變更為數(shù)據(jù)服務(wù)器所對(duì)應(yīng)的備份服務(wù)器的地址信息。通過(guò)這樣的處理,當(dāng)后續(xù)再接到對(duì)于相應(yīng)數(shù)據(jù)的操作請(qǐng)求時(shí),管理服務(wù)器返回的 將是變更后的數(shù)據(jù)標(biāo)識(shí),相應(yīng)的應(yīng)用服務(wù)器將通過(guò)更改后的地址向備份服務(wù)器獲取相應(yīng)的 數(shù)據(jù)信息,從而,保證具體的應(yīng)用進(jìn)程不會(huì)因?yàn)閿?shù)據(jù)不能訪問(wèn)而中斷。步驟S102、應(yīng)用服務(wù)器向管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)。在具體的應(yīng)用場(chǎng)景中,本步驟具體包括以下兩種情況情況一、當(dāng)應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),應(yīng)用服務(wù)器向管理服務(wù)器請(qǐng)求目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),并接收管理服務(wù)器所返回的目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。這種情況的數(shù)據(jù)標(biāo)識(shí)獲取請(qǐng)求的針對(duì)性比較強(qiáng),需要對(duì)指定的目標(biāo)數(shù)據(jù)進(jìn)行數(shù)據(jù) 標(biāo)識(shí)獲取操作,所獲取的數(shù)據(jù)標(biāo)識(shí)的范圍僅限于目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),而對(duì)其他數(shù) 據(jù)的數(shù)據(jù)標(biāo)識(shí)則不會(huì)進(jìn)行獲取,因此,在進(jìn)行數(shù)據(jù)標(biāo)識(shí)的獲取時(shí),應(yīng)用服務(wù)器向管理服務(wù)器 發(fā)送的獲取請(qǐng)求中需要攜帶目標(biāo)數(shù)據(jù)的指示信息,例如目標(biāo)數(shù)據(jù)在當(dāng)前系統(tǒng)中的數(shù)據(jù)編號(hào) 或數(shù)據(jù)名稱等,凡是可以實(shí)現(xiàn)對(duì)當(dāng)前系統(tǒng)中的海量數(shù)據(jù)進(jìn)行區(qū)分的信息形式,都可以作為 指示信息,具體的指示信息的類型變化并不會(huì)影響本申請(qǐng)的保護(hù)范圍。情況二、當(dāng)應(yīng)用服務(wù)器初始化時(shí),應(yīng)用服務(wù)器向管理服務(wù)器獲取系統(tǒng)當(dāng)前所有數(shù) 據(jù)的數(shù)據(jù)標(biāo)識(shí),并在本地存儲(chǔ),當(dāng)應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),應(yīng)用服務(wù) 器在本地讀取目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。這種情況的數(shù)據(jù)標(biāo)識(shí)獲取是一次性的,在應(yīng)用服務(wù)器初始化時(shí),一次性的向管理 服務(wù)器獲取所有當(dāng)前數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),并且在本地進(jìn)行存儲(chǔ)。這樣處理的好處在于,應(yīng)用服務(wù)器發(fā)起數(shù)據(jù)操作時(shí),直接可以根據(jù)本地存儲(chǔ)的數(shù) 據(jù)標(biāo)識(shí)找到相應(yīng)的數(shù)據(jù)信息,而不再需要與管理服務(wù)器進(jìn)行信息交互,節(jié)約了信息交互的 時(shí)間,提高了相應(yīng)的處理效率。但是這樣的方案需要應(yīng)用服務(wù)器中提供相應(yīng)的數(shù)據(jù)標(biāo)識(shí)的存儲(chǔ)空間,以保證獲取 到的全部數(shù)據(jù)標(biāo)識(shí)都能夠存儲(chǔ)在相應(yīng)的空間中,由于數(shù)據(jù)標(biāo)識(shí)的大小都很有限,所以,并不 會(huì)造成太大的存儲(chǔ)負(fù)擔(dān),但是否應(yīng)用此種方案需要根據(jù)具體的應(yīng)用場(chǎng)景來(lái)衡量。上述兩種方式都可以實(shí)現(xiàn)數(shù)據(jù)標(biāo)識(shí)信息的獲取,具體應(yīng)用哪種方式并不影響本申 請(qǐng)的保護(hù)范圍。在通過(guò)上述的方式獲取到數(shù)據(jù)標(biāo)識(shí)后,本申請(qǐng)所提出的技術(shù)方案還進(jìn)一步包括被 獲取的數(shù)據(jù)標(biāo)識(shí)的更新流程,這個(gè)流程的設(shè)置目的在于被獲取的數(shù)據(jù)標(biāo)識(shí)可能會(huì)發(fā)生變 化,而如果應(yīng)用服務(wù)器只是獲取了變化前的數(shù)據(jù)標(biāo)識(shí),那么,應(yīng)用服務(wù)器將不能進(jìn)行正常的 業(yè)務(wù)操作,從而影響系統(tǒng)中正常業(yè)務(wù)的實(shí)現(xiàn)。具體的,根據(jù)上述的目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)獲取方式的不同,后續(xù)的更新流程也存 在相應(yīng)的區(qū)別,具體說(shuō)明如下如果目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)獲取方式對(duì)應(yīng)的是上述的情況一,即應(yīng)用服務(wù)器是在需 要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),才向管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),那么,當(dāng)管理服務(wù)器 判斷目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)發(fā)生變化(例如,由于數(shù)據(jù)存儲(chǔ)位置的變化,讀寫(xiě)權(quán)限的變化以 及數(shù)據(jù)本身的增加或刪除導(dǎo)致數(shù)據(jù)標(biāo)識(shí)中所存儲(chǔ)的信息發(fā)生調(diào)整)時(shí),管理服務(wù)器向應(yīng)用 服務(wù)器發(fā)送包含新的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新應(yīng)用服務(wù)器所獲取的目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo) 識(shí)。如果目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)獲取方式對(duì)應(yīng)的是上述的情況二,即應(yīng)用服務(wù)器是在初 始化時(shí),向管理服務(wù)器獲取系統(tǒng)當(dāng)前所有數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),那么,當(dāng)管理服務(wù)器判斷系統(tǒng)中 當(dāng)前的數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)發(fā)生變化,或有新的數(shù)據(jù)信息加入系統(tǒng)時(shí),管理服務(wù)器向應(yīng) 用服務(wù)器發(fā)送包含更新的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)或新加入的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新應(yīng) 用服務(wù)器所獲取的系統(tǒng)當(dāng)前全部數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。步驟S103、應(yīng)用服務(wù)器根據(jù)數(shù)據(jù)標(biāo)識(shí)中所包含的目標(biāo)數(shù)據(jù)的地址信息訪問(wèn)目標(biāo)數(shù) 據(jù),并根據(jù)數(shù)據(jù)標(biāo)識(shí)中所包含的目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán)限,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行相應(yīng)的操作。
對(duì)應(yīng)前述的兩種情況,本步驟的具體處理過(guò)程包括對(duì)應(yīng)情況一,應(yīng)用服務(wù)器向管理服務(wù)器獲取數(shù)據(jù)標(biāo)識(shí),并根據(jù)獲取到的目標(biāo)數(shù)據(jù) 的數(shù)據(jù)標(biāo)識(shí)中所包含的地址信息查詢到相應(yīng)的數(shù)據(jù)存儲(chǔ)位置,并進(jìn)一步根據(jù)獲取到的目標(biāo) 數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)中所包含的讀寫(xiě)權(quán)限信息判斷目標(biāo)數(shù)據(jù)是否可以實(shí)現(xiàn)對(duì)應(yīng)的操作,如果判 斷結(jié)果成立,則直接進(jìn)行相應(yīng)的操作,如果判斷結(jié)果不成立,則判斷相應(yīng)的操作失敗。對(duì)應(yīng)情況二,應(yīng)用服務(wù)器直接查詢本地存儲(chǔ)的數(shù)據(jù)標(biāo)識(shí),并根據(jù)本地存儲(chǔ)的目標(biāo) 數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)中所包含的地址信息查詢到相應(yīng)的數(shù)據(jù)存儲(chǔ)位置,并進(jìn)一步根據(jù)獲取到的 目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)中所包含的讀寫(xiě)權(quán)限信息判斷目標(biāo)數(shù)據(jù)是否可以實(shí)現(xiàn)對(duì)應(yīng)的操作,如 果判斷結(jié)果成立,則直接進(jìn)行相應(yīng)的操作,如果判斷結(jié)果不成立,則判斷相應(yīng)的操作失敗。與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)通過(guò)應(yīng)用本申請(qǐng)實(shí)施例的技術(shù)方案,可以在系統(tǒng)的數(shù)據(jù)中添加數(shù)據(jù)標(biāo)識(shí),標(biāo)識(shí)出 該數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限信息,從而可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的分表分庫(kù)管理,并可以根 據(jù)系統(tǒng)中的數(shù)據(jù)庫(kù)管理策略進(jìn)行相應(yīng)的信息調(diào)度,提高系統(tǒng)中的數(shù)據(jù)信息管理效率。為了更加清楚的說(shuō)明本申請(qǐng)的技術(shù)方案,首先,對(duì)分表分庫(kù)技術(shù)進(jìn)行相應(yīng)的闡述。在具體的應(yīng)用場(chǎng)景中,負(fù)載高點(diǎn)可能考慮使用相關(guān)的R印Iication (復(fù)制)機(jī)制來(lái) 提高讀寫(xiě)的吞吐和性能,這可能已經(jīng)可以滿足很多需求,但這套機(jī)制自身的缺陷還是比較 顯而易見(jiàn)的。首先,上述的R印Iication機(jī)制的有效依賴于讀操作的比例,Master Server (主 服務(wù)器)往往會(huì)成為瓶頸所在,寫(xiě)操作需要順序排隊(duì)來(lái)執(zhí)行,過(guò)載的話Master krver首先 會(huì)出現(xiàn)不能承受當(dāng)前負(fù)載的狀況,Slaves Server (從服務(wù)器)的數(shù)據(jù)同步的延遲也可能比 較大,而且會(huì)大大耗費(fèi)CPU的計(jì)算能力,因?yàn)閷?xiě)操作在Master Server上執(zhí)行以后,還是需 要在每臺(tái)Slave krver上都執(zhí)行一次。這時(shí)候,可以通過(guò)開(kāi)源數(shù)據(jù)庫(kù)技術(shù)中的Siarding 技術(shù)將計(jì)算、存儲(chǔ)、I/O等并行的分發(fā)到多臺(tái)設(shè)備上,這樣可以充分利用多臺(tái)機(jī)器各種處理 能力,同時(shí)可以避免單點(diǎn)失敗,提供系統(tǒng)的可用性,進(jìn)行很好的錯(cuò)誤隔離。綜合以上因素,數(shù)據(jù)切分就變得十分必要,具體的數(shù)據(jù)切分包括以下兩種情況(1)分庫(kù)處理技術(shù)數(shù)據(jù)切分可以是物理上的,對(duì)數(shù)據(jù)通過(guò)一系列的切分規(guī)則將 數(shù)據(jù)分布到不同的數(shù)據(jù)庫(kù)服務(wù)器(Data Base Server,DB Server)上,通過(guò)路由規(guī)則路由訪 問(wèn)特定的數(shù)據(jù)庫(kù),這樣一來(lái),每次訪問(wèn)操作所面對(duì)的就不是單臺(tái)服務(wù)器,而是多臺(tái)服務(wù)器, 這樣的處理可以降低單臺(tái)機(jī)器的負(fù)載壓力。(2)分表處理技術(shù)數(shù)據(jù)切分也可以是數(shù)據(jù)庫(kù)內(nèi)的,對(duì)數(shù)據(jù)通過(guò)一系列的切分規(guī) 則,將數(shù)據(jù)分布到一個(gè)數(shù)據(jù)庫(kù)的不同表中,比如,將一個(gè)article表劃分為article_001, article_002等多個(gè)子表,若干個(gè)子表水平拼合組成了邏輯上一個(gè)完整的article表。這樣處理的作用通過(guò)以下示例進(jìn)行說(shuō)明假設(shè)一個(gè)article表中現(xiàn)在有5000萬(wàn)條數(shù)據(jù),此時(shí),系統(tǒng)需要在這個(gè)article表 中增加(insert) —條新的數(shù)據(jù)。如果不進(jìn)行分表處理,insert操作完畢后,數(shù)據(jù)庫(kù)會(huì)針對(duì)這張表重新建立索引,對(duì) 于5000萬(wàn)行數(shù)據(jù)建立索引的系統(tǒng)開(kāi)銷是十分巨大的。但是反過(guò)來(lái),如果進(jìn)行了分表處理,預(yù)先將article表分為了 100個(gè)子表,從 article_001 一直到article_100,那么,5000萬(wàn)行數(shù)據(jù)平均下來(lái),每個(gè)子表里邊就只有50萬(wàn)行數(shù)據(jù),因此,對(duì)于同樣的insert操作,只需要向一張只有50萬(wàn)行數(shù)據(jù)的子表中進(jìn)行數(shù) 據(jù)添加操作,并且數(shù)據(jù)添加完畢后,建立索引的時(shí)間也會(huì)因?yàn)樗幚頂?shù)據(jù)量的大幅下降而 呈數(shù)量級(jí)的降低,從而,提高了數(shù)據(jù)庫(kù)的運(yùn)行時(shí)效率,提高了數(shù)據(jù)庫(kù)的并發(fā)量。當(dāng)然,分表處理的好處不僅包括以上的處理效率的提高,在諸如寫(xiě)操作的鎖操作 等諸多領(lǐng)域,都可以通過(guò)應(yīng)用分表技術(shù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行處理,從而帶來(lái)很多有益的效果。綜上所述,分庫(kù)技術(shù)的實(shí)現(xiàn)降低了單點(diǎn)機(jī)器的負(fù)載,而分表技術(shù)的應(yīng)用則提高了 數(shù)據(jù)操作的效率,尤其是提高了寫(xiě)操作的效率,進(jìn)一步的,本申請(qǐng)通過(guò)以下說(shuō)明對(duì)切分規(guī)則 進(jìn)行詳盡的闡述。首先,為了實(shí)現(xiàn)數(shù)據(jù)的水平切分,在每一個(gè)表中都要有相冗余字符作為切分依據(jù) 和標(biāo)記字段,通常的應(yīng)用中,可以選用uSer_id作為區(qū)分字段,基于這種設(shè)置,可以進(jìn)一步 的提出如下三種分庫(kù)的方式和規(guī)則按號(hào)段分(1)以u(píng)ser_id為區(qū)分依據(jù)。例如將user_id為1 1000的表對(duì)應(yīng)DBl (數(shù)據(jù)庫(kù)1),將user_id為1001 2000的表對(duì)應(yīng)DB2 (數(shù)據(jù)庫(kù)2),并以此類推。其中的userjd分配區(qū)間可以根據(jù)具體的需 要進(jìn)行調(diào)整,這樣的變化并不會(huì)影響本申請(qǐng)的保護(hù)范圍。(2)通過(guò)哈希(hash)算法進(jìn)行取模區(qū)分對(duì)user_id進(jìn)行hash處理(或者如果user_id是數(shù)值型的話直接使用user_id 的值也可),然后用一個(gè)特定的數(shù)字進(jìn)行進(jìn)一步處理計(jì)算。比如,應(yīng)用中需要將一個(gè)數(shù)據(jù)庫(kù)切分成4個(gè)數(shù)據(jù)庫(kù)的話,就用4這個(gè)數(shù)字對(duì)USer_ id的hash值進(jìn)行取模運(yùn)算,也就是USer_id% 4,這樣的話每次運(yùn)算就有四種可能結(jié)果為1的時(shí)候?qū)?yīng)DBl ;結(jié)果為2的時(shí)候?qū)?yīng)DB2 ;結(jié)果為3的時(shí)候?qū)?yīng)DB3 ;結(jié)果為0的時(shí)候?qū)?yīng)DB4。由于進(jìn)行hash處理時(shí)的數(shù)據(jù)分配頻率是均勻的,因此,可以非常均勻的將數(shù)據(jù)分 配到4個(gè)DB中。(3)在認(rèn)證庫(kù)中保存數(shù)據(jù)庫(kù)配置就是建立一個(gè)數(shù)據(jù)庫(kù)作為認(rèn)證庫(kù),這個(gè)認(rèn)證庫(kù)單獨(dú)保存了各個(gè)user_id到各個(gè)DB 的映射關(guān)系,因此,每次訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候都要先查詢一次這個(gè)認(rèn)證庫(kù),以得到具體的DB 信息,然后才能進(jìn)行具體的操作處理。以上三種方式是通常的開(kāi)發(fā)所選擇的三種方式,不同的項(xiàng)目會(huì)進(jìn)行不同的方案選 擇,有些復(fù)雜的項(xiàng)目中可能會(huì)混合使用這三種方式。基于上述的技術(shù)思想和方案細(xì)節(jié),分布式數(shù)據(jù)方案提供功能如下(1)提供分庫(kù)規(guī)則和路由規(guī)則(Route Rule,RR),將上面的說(shuō)明中提到的三種切分 規(guī)則直接內(nèi)嵌入系統(tǒng)中,具體的嵌入方式在接下來(lái)的內(nèi)容中進(jìn)行詳細(xì)的說(shuō)明和論述。(2)引入集群(Group)的概念,保證數(shù)據(jù)的高可用性。(3)引入負(fù)載均衡策略(Load Balance Policy,LBP)。(4)引入集群節(jié)點(diǎn)可用性探測(cè)機(jī)制,對(duì)單點(diǎn)機(jī)器的可用性進(jìn)行定時(shí)的偵測(cè),以保證LB策略的正確實(shí)施,以確保系統(tǒng)的高度穩(wěn)定性。(5)引入讀/寫(xiě)分離,提高數(shù)據(jù)的查詢速度。在具體的應(yīng)用場(chǎng)景中,僅僅是通過(guò)分庫(kù)分表處理的數(shù)據(jù)層設(shè)計(jì)也是不夠完善的。比如,當(dāng)某個(gè)節(jié)點(diǎn)上的數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)了宕機(jī)或其他不能工作的情況時(shí),由于 采用了數(shù)據(jù)庫(kù)切分方案,也就是說(shuō)有N臺(tái)機(jī)器共同組成了一個(gè)完整的數(shù)據(jù)庫(kù),如果其中有 一臺(tái)機(jī)器宕機(jī)的話,也僅僅是一個(gè)數(shù)據(jù)庫(kù)的N分之一的數(shù)據(jù)不能訪問(wèn)而已,這種情況顯然 好于切分之前的情況,不至于讓整個(gè)數(shù)據(jù)庫(kù)都不能訪問(wèn),但畢竟還是存在單點(diǎn)中的部分?jǐn)?shù) 據(jù)庫(kù)無(wú)法訪問(wèn)的情況。雖然在實(shí)際應(yīng)用中這樣的不足是可以接受的,但是,錯(cuò)誤本身的存在 卻是不容忽視的,尤其是當(dāng)應(yīng)用的直接目的數(shù)據(jù)庫(kù)就是發(fā)生故障的單點(diǎn)數(shù)據(jù)庫(kù)時(shí),所帶來(lái) 的損失將是不容忽視的,也就是說(shuō),即使應(yīng)用了分表分庫(kù)技術(shù),具體應(yīng)用場(chǎng)景中的容錯(cuò)性能 還是存在缺陷。因此,本申請(qǐng)引入了集群的概念來(lái)解決相應(yīng)的問(wèn)題,也就是將每一個(gè)分庫(kù)的節(jié)點(diǎn) 引入多臺(tái)服務(wù)器設(shè)備,在每臺(tái)服務(wù)器設(shè)備中保存的數(shù)據(jù)是一樣的,一般情況下,這多臺(tái)服務(wù) 器設(shè)備分擔(dān)負(fù)載,而當(dāng)其中的某臺(tái)服務(wù)器設(shè)備出現(xiàn)宕機(jī)情況時(shí),負(fù)載均衡器將該臺(tái)服務(wù)器 設(shè)備的負(fù)載分配給其他服務(wù)器設(shè)備。這樣一來(lái),就解決了容錯(cuò)性的問(wèn)題,即使在單點(diǎn)服務(wù)器 設(shè)備出現(xiàn)故障時(shí),也不會(huì)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息造成損失,從而,保證系統(tǒng)中數(shù)據(jù)業(yè)務(wù)的正 常實(shí)現(xiàn)。如圖2所示,整個(gè)數(shù)據(jù)層有Group 1,Group2, Group3三個(gè)集群組成,這三個(gè)集群就 是數(shù)據(jù)水平切分的結(jié)果,當(dāng)然這三個(gè)集群也就組成了一個(gè)包含完整數(shù)據(jù)的數(shù)據(jù)庫(kù)。每一個(gè) Group包括一個(gè)Master Server (當(dāng)然,在實(shí)際的應(yīng)用場(chǎng)景中,Master Server也可以是多 個(gè))和多個(gè)Slave Server,這些Master Server和Slave Server的數(shù)據(jù)是一致的。比如,Groupl中的一個(gè)Slave krver發(fā)生了宕機(jī)現(xiàn)象,那么,在該Group中,還有 兩個(gè)Slave krver是可以用的,而由于各Slave krver中的數(shù)據(jù)是一致的,因此,不會(huì)對(duì) 正常的數(shù)據(jù)庫(kù)操作造成影響,不會(huì)出現(xiàn)某部分?jǐn)?shù)據(jù)不能訪問(wèn)的問(wèn)題,除非整個(gè)Group里的 機(jī)器全部宕掉,但是在實(shí)際的應(yīng)用場(chǎng)景中,出現(xiàn)這種故障的概率很小。在沒(méi)有引入集群劃分的操作規(guī)則以前,一次查詢的過(guò)程大致如下請(qǐng)求數(shù)據(jù)層,并 傳遞必要的分庫(kù)區(qū)分字段(通常情況下是uSer_id),數(shù)據(jù)層根據(jù)區(qū)分字段路由到具體的數(shù) 據(jù)庫(kù),并在這個(gè)確定的數(shù)據(jù)庫(kù)中進(jìn)行相應(yīng)的進(jìn)行數(shù)據(jù)操作。而引入集群劃分的操作規(guī)則的情況下,路由器上所配置的具體規(guī)則和策略只能將 操作指令路由到具體的Group中,也就是只能路由到一個(gè)虛擬的Group中,這個(gè)Group并不 是某個(gè)特定的某個(gè)物理的數(shù)據(jù)庫(kù)服務(wù)器,而是由多個(gè)物理的數(shù)據(jù)庫(kù)服務(wù)器所組成的虛擬集群。接下來(lái),需要查找具體的物理的數(shù)據(jù)庫(kù)服務(wù)器,以進(jìn)行具體的數(shù)據(jù)操作?;谶@個(gè) 環(huán)節(jié)的需求,引入了負(fù)載均衡器(Load Balance,LB)的概念,負(fù)載均衡器的職責(zé)就是將具體 的操作指令定位到一臺(tái)具體的數(shù)據(jù)庫(kù)服務(wù)器。具體的規(guī)則如下負(fù)載均衡器會(huì)分析當(dāng)前操作指令的讀寫(xiě)特性,如果是寫(xiě)操作或 者是要求實(shí)時(shí)性很強(qiáng)的操作,直接將操作指令分配到Master Server,而如果是讀操作,則 通過(guò)負(fù)載均衡策略,將操作指令分配到一個(gè)Slave Server中。通常情況下,負(fù)載均衡包括隨機(jī)負(fù)載均衡和加權(quán)負(fù)載均衡。
隨機(jī)負(fù)載均衡就是從N個(gè)Slave Server中隨機(jī)選取一個(gè)Slave Server。這樣的 隨機(jī)負(fù)載均衡是不考慮機(jī)器性能的,默認(rèn)為每臺(tái)服務(wù)器設(shè)備的性能是一樣的。但是,對(duì)于每個(gè)Slave Server的機(jī)器物理性能和配置不一樣的情況,再使用隨機(jī) 的不考慮性能的負(fù)載均衡,是非常不科學(xué)的,這樣一來(lái)會(huì)給機(jī)器性能差的機(jī)器帶來(lái)不必要 的高負(fù)載,甚至帶來(lái)宕機(jī)的危險(xiǎn),同時(shí)高性能的數(shù)據(jù)庫(kù)服務(wù)器也不能充分發(fā)揮其物理性能?;诖丝紤],進(jìn)一步的引入了加權(quán)負(fù)載均衡,也就是通過(guò)一定的接口,給每臺(tái)數(shù)據(jù) 庫(kù)服務(wù)器分配一個(gè)權(quán)值,然后,在運(yùn)行時(shí),由負(fù)載均衡器根據(jù)權(quán)值在集群中的比重,分配一 定比例的負(fù)載給該數(shù)據(jù)庫(kù)服務(wù)器。有了分庫(kù),有了集群,有了負(fù)載均衡器,但是這樣的設(shè)計(jì)并不能完全規(guī)避數(shù)據(jù)庫(kù)宕 機(jī)的危害。例如,Groupl中的Slave Server 2宕機(jī)了,那么,系統(tǒng)的負(fù)載均衡器并不能得知, 這樣的話其實(shí)是很危險(xiǎn)的,因?yàn)樨?fù)載均衡器不知道,還會(huì)以為SlaveServer 2為可用狀態(tài), 所以,還是會(huì)給Slave Server 2分配負(fù)載。這樣一來(lái),客戶端便會(huì)發(fā)生數(shù)據(jù)操作失敗的錯(cuò) 誤或者異常。為了應(yīng)對(duì)上述不足,本申請(qǐng)進(jìn)一步引入了集群節(jié)點(diǎn)的可用性探測(cè)機(jī)制,或者可用 性數(shù)據(jù)推送機(jī)制。首先,可用性探測(cè)機(jī)制就是數(shù)據(jù)層客戶端不定時(shí)的對(duì)集群中各個(gè)數(shù)據(jù)庫(kù)進(jìn)行 可用性的嘗試,實(shí)現(xiàn)原理就是嘗試性鏈接,或者數(shù)據(jù)庫(kù)端口的嘗試性訪問(wèn),當(dāng)然也可以 用JDBC(Java Data Base Connectivity, Java數(shù)據(jù)庫(kù)連接)嘗試性鏈接,利用Java的 Exception機(jī)制進(jìn)行可用性的判斷,具體嘗試形式的變化并不會(huì)影響本申請(qǐng)的保護(hù)范圍。一般情況下,當(dāng)前應(yīng)用的數(shù)據(jù)庫(kù)服務(wù)器宕機(jī)的話,數(shù)據(jù)庫(kù)管理員(Database Administrator, DBA)肯定是可以知道的,這個(gè)時(shí)候,DBA可以手動(dòng)的將數(shù)據(jù)庫(kù)的當(dāng)前狀態(tài) 通過(guò)程序的方式推送到客戶端,也就是分布式數(shù)據(jù)層的應(yīng)用端,更新一個(gè)本地的數(shù)據(jù)庫(kù)狀 態(tài)的列表,并告知負(fù)載均衡器,這個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)不能使用,請(qǐng)不要給它分配負(fù)載。上述的兩種監(jiān)聽(tīng)策略,一個(gè)是主動(dòng)的監(jiān)聽(tīng)機(jī)制,一個(gè)是被動(dòng)的被告知的機(jī)制,兩者 各有所長(zhǎng),但是都可以達(dá)到同樣的效果。這樣一來(lái),可以有效的避免上述的假設(shè)中所存在問(wèn) 題。對(duì)于上述的說(shuō)明文字中提到的Master krver和Slave Server,具體分布關(guān)系如 圖 2 所不, IvGroup 由 1 個(gè)Master Server 禾口 N個(gè) Slave krver組成。其中 ,MasterServer 負(fù)責(zé)寫(xiě)操作的負(fù)載,也就是說(shuō)一切寫(xiě)的操作都在Master krver上進(jìn)行,而讀的操作則分?jǐn)?到Slave Server上進(jìn)行。這樣一來(lái)的可以大大提高讀取的效率。在一般的互聯(lián)網(wǎng)應(yīng)用中,經(jīng)過(guò)一些數(shù)據(jù)調(diào) 查得出結(jié)論,讀/寫(xiě)的比例大概在10 1左右,也就是說(shuō)大量的數(shù)據(jù)操作是集中在讀的操 作。在具體的應(yīng)用場(chǎng)景中,寫(xiě)操作涉及到鎖的問(wèn)題,并且,無(wú)論是行鎖、表鎖還是塊鎖, 都會(huì)造成系統(tǒng)執(zhí)行效率降低的情況,將寫(xiě)操作獨(dú)立的部署于Master krver中,可以有效的 規(guī)避寫(xiě)操作對(duì)其他服務(wù)器的效率影響,而由于大量的寫(xiě)操作沒(méi)有分配給Master Server,所 以,Master krver可以有更多的系統(tǒng)資源用于進(jìn)行寫(xiě)操作,從而,提高寫(xiě)操作的處理效率。在本申請(qǐng)所提出的技術(shù)方案中,讀寫(xiě)分離是把寫(xiě)操作集中在一個(gè)節(jié)點(diǎn)上,而讀操作在其他的N個(gè)節(jié)點(diǎn)上進(jìn)行,從另一個(gè)方面,本技術(shù)方案可以有效的提高讀操作的效率,保 證了系統(tǒng)的高可用性。對(duì)于上述的技術(shù)方案,系統(tǒng)的實(shí)現(xiàn)層面有兩種選擇一種是基于JDBC層面上的選擇。一種是基于現(xiàn)有數(shù)據(jù)持久層框架層面上的選擇,比如hibernate、iBATIS等?;贘DBC層面上的系統(tǒng)實(shí)現(xiàn),系統(tǒng)開(kāi)發(fā)難度和后期的使用難度都將大大提高,大 大增加了系統(tǒng)的開(kāi)發(fā)費(fèi)用和維護(hù)費(fèi)用。本申請(qǐng)所提出的實(shí)施例所提出的技術(shù)方案的定位是在成型的iBATIS持久層框架 的基礎(chǔ)上進(jìn)行上層的封裝,而不是對(duì)iBATIS源碼的直接修改,這樣一來(lái),不會(huì)使本系統(tǒng)對(duì) 現(xiàn)有的框架具有太多的侵入性,并且,也增加了使用的靈活性。之所以選擇iBATIS,原因如下(l)iBATIS的學(xué)習(xí)成本非常低,熟練的Java Programmer可在非常的短時(shí)間內(nèi)熟 練使用iBATIS。O) iBATIS 是輕量級(jí)的 ORM(Object/Relation Mapping,對(duì)象 / 關(guān)系映射),只是簡(jiǎn) 單的完成了 RO (Relation-Object,關(guān)系-對(duì)象),OR (Object-Relation,對(duì)象-關(guān)系)的映 射,其查詢語(yǔ)句也是通過(guò)配置文件(例如,sql-map. xml文件)在原生的SQL的結(jié)構(gòu)層面進(jìn) 行簡(jiǎn)單的配置。也就是說(shuō),實(shí)現(xiàn)上述的技術(shù)方案無(wú)需引入諸如Hibernate那樣的HQL(Hibernate Query Language)的概念,從而增強(qiáng)了 SQL的可控性,因此,數(shù)據(jù)庫(kù)管理員可以從SQL的層面 對(duì)SQL進(jìn)行優(yōu)化,使數(shù)據(jù)層的應(yīng)用有很強(qiáng)的可控性。與之相對(duì)的,Hibernate的功能雖然很強(qiáng)大,但是由于Hibernate是OR的一個(gè)重 型封裝,且引入HQL的概念,不便于數(shù)據(jù)庫(kù)管理員團(tuán)隊(duì)對(duì)SQL語(yǔ)句的控制和性能的調(diào)優(yōu)?;谝陨蟽牲c(diǎn)理由,本申請(qǐng)的實(shí)施例在ORM的產(chǎn)品的選擇上選擇了易學(xué)易用且輕 量級(jí)的持久層框架iBATIS。下面的說(shuō)明也都是特定于iBATIS的基礎(chǔ)上的討論,但是,并不 是說(shuō)本申請(qǐng)的技術(shù)方案只能基于iBATIS場(chǎng)景進(jìn)行,只是為了便于說(shuō)明而將后續(xù)的處理場(chǎng) 景具體為iBATIS場(chǎng)景,具體應(yīng)用場(chǎng)景的變化并不會(huì)影響本申請(qǐng)的保護(hù)范圍。在一些大型的Java應(yīng)用中,通常會(huì)采用Spring這樣的開(kāi)源框架,尤其是 IoCdnversion of Control,控制反轉(zhuǎn))這部分,有效的幫助開(kāi)發(fā)人員管理對(duì)象的依賴關(guān)系 和層次,降低系統(tǒng)各層次之間的實(shí)體耦合。上述的技術(shù)方案的系統(tǒng)構(gòu)建工具包括構(gòu)建工具Antx (類似于Maven)和Maven, 而依賴的開(kāi)源 Jar 包括 Spring2. O、iBATIS、commons-configuration(讀取配置文件)、 log4j、junit 等。數(shù)據(jù)源本身在Java中是沒(méi)有特殊標(biāo)記的,通過(guò)對(duì)數(shù)據(jù)源的標(biāo)記,從而能夠?qū)?shù)據(jù) 源進(jìn)行描述,例如描述該數(shù)據(jù)源是否支持可寫(xiě)操作。本申請(qǐng)實(shí)施例的技術(shù)方案擴(kuò)展iBATIS的分析特性,提供在項(xiàng)目啟動(dòng)的時(shí)候?qū)λ?有的SQL語(yǔ)句進(jìn)行一個(gè)當(dāng)前讀寫(xiě)性能的分析,并將分析結(jié)果緩存到本地內(nèi)存中,大大提高 了性能。通過(guò)配置中心,推送給應(yīng)用需要的數(shù)據(jù)庫(kù)分表分庫(kù)信息。應(yīng)用在執(zhí)行某條SQL的 時(shí)候,會(huì)根據(jù)該SQL操作所對(duì)應(yīng)的表,以及配置中心推送的分庫(kù)分表信息,得到該表的分庫(kù)依據(jù),再據(jù)此獲得真正的數(shù)據(jù)庫(kù)的位置信息,從而對(duì)真正的目標(biāo)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)庫(kù)操作。進(jìn)一步的,對(duì)應(yīng)圖3,對(duì)本申請(qǐng)的具體技術(shù)方案在具體的應(yīng)用場(chǎng)景中的實(shí)現(xiàn)過(guò)程進(jìn) 行詳細(xì)的說(shuō)明,其中,圖3具體為本申請(qǐng)實(shí)施例所提供的一種數(shù)據(jù)庫(kù)信息管理方法的應(yīng)用 場(chǎng)景的結(jié)構(gòu)示意圖。在具體的實(shí)施場(chǎng)景中,如圖4所示,為本申請(qǐng)實(shí)施例所提供的一種數(shù)據(jù)庫(kù)信息管 理方法的的流程示意圖,具體包括以下步驟步驟S401、Web應(yīng)用向業(yè)務(wù)中心發(fā)送應(yīng)用操作請(qǐng)求。在實(shí)際的應(yīng)用場(chǎng)景中,如圖3所示,Web應(yīng)用具體包括博客(Blog)、論壇(Bulletin Board System, BBS)、相冊(cè)等需要借助Web和相對(duì)應(yīng)的數(shù)據(jù)庫(kù)支持來(lái)實(shí)現(xiàn)的應(yīng)用。用戶可以通過(guò)上述的各種Web應(yīng)用進(jìn)行數(shù)據(jù)的發(fā)布和瀏覽,這樣的基礎(chǔ)在于該 Web應(yīng)用具有一個(gè)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行數(shù)據(jù)支持,用戶發(fā)布的數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫(kù)中, 而數(shù)據(jù)庫(kù)中所存儲(chǔ)的數(shù)據(jù)則可以被滿足權(quán)限要求的用戶進(jìn)行讀取瀏覽或者編輯修改。步驟S402、業(yè)務(wù)中心向管理服務(wù)器請(qǐng)求應(yīng)用操作請(qǐng)求的目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo) 識(shí)。步驟S403、業(yè)務(wù)中心向管理服務(wù)器接收應(yīng)用操作請(qǐng)求的目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo) 識(shí)。其中,數(shù)據(jù)標(biāo)識(shí)中包含目標(biāo)數(shù)據(jù)的位置信息和讀寫(xiě)權(quán)限信息。步驟S404、業(yè)務(wù)中心根據(jù)獲取到的數(shù)據(jù)標(biāo)識(shí)判斷是否可以對(duì)目標(biāo)數(shù)據(jù)進(jìn)行與應(yīng)用 操作請(qǐng)求相對(duì)應(yīng)的業(yè)務(wù)操作。具體的判斷依據(jù)包括目標(biāo)數(shù)據(jù)的位置信息是否為有效地址,例如位置信息所對(duì)應(yīng)的數(shù)據(jù)服務(wù)器是否 存在或是否處于可用狀態(tài),如果該數(shù)據(jù)服務(wù)器不存在或當(dāng)前由于業(yè)務(wù)繁忙而暫時(shí)不可訪 問(wèn),那么,則判斷為不可以對(duì)目標(biāo)數(shù)據(jù)進(jìn)行與應(yīng)用操作請(qǐng)求相對(duì)應(yīng)的業(yè)務(wù)操作。目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán)限信息與應(yīng)用操作請(qǐng)求的類型是否一致,例如如果應(yīng)用操作 請(qǐng)求的類型為寫(xiě)入請(qǐng)求,而目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán)限為只允許讀操作,因此,不能對(duì)目標(biāo)數(shù)據(jù)進(jìn) 行寫(xiě)入操作,那么,則判斷為不可以對(duì)目標(biāo)數(shù)據(jù)進(jìn)行與應(yīng)用操作請(qǐng)求相對(duì)應(yīng)的業(yè)務(wù)操作。如果判斷結(jié)果為否,則執(zhí)行步驟S405 ;如果判斷結(jié)果為是,則執(zhí)行步驟S406。步驟S405、業(yè)務(wù)中心向Web應(yīng)用返回應(yīng)用操作請(qǐng)求失敗的通知消息。步驟S406、業(yè)務(wù)中心向目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)服務(wù)器集群發(fā)送操作指令。步驟S407、數(shù)據(jù)服務(wù)器集群中相對(duì)應(yīng)的數(shù)據(jù)服務(wù)器對(duì)目標(biāo)數(shù)據(jù)執(zhí)行相應(yīng)的操作處理。具體的,當(dāng)對(duì)目標(biāo)數(shù)據(jù)的操作指令為寫(xiě)操作時(shí),可以由該數(shù)據(jù)服務(wù)器集群中的主 服務(wù)器執(zhí)行;當(dāng)對(duì)目標(biāo)數(shù)據(jù)的操作指令為讀操作時(shí),可以由該數(shù)據(jù)服務(wù)器集群中的從服務(wù)器執(zhí) 行。與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)通過(guò)應(yīng)用本申請(qǐng)實(shí)施例的技術(shù)方案,可以在系統(tǒng)的數(shù)據(jù)中添加數(shù)據(jù)標(biāo)識(shí),標(biāo)識(shí)出 該數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限信息,從而可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的分表分庫(kù)管理,并可以根據(jù)系統(tǒng)中的數(shù)據(jù)庫(kù)管理策略進(jìn)行相應(yīng)的信息調(diào)度,提高系統(tǒng)中的數(shù)據(jù)信息管理效率。為了實(shí)現(xiàn)上述的本申請(qǐng)實(shí)施例所提出的技術(shù)方案,本申請(qǐng)實(shí)施例還提出了一種應(yīng) 用服務(wù)器,應(yīng)用于包括一個(gè)管理服務(wù)器、一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)中,管理 服務(wù)器為數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),數(shù)據(jù)標(biāo)識(shí)包括數(shù)據(jù)的地址信息和數(shù)據(jù)的讀寫(xiě) 權(quán)限。如圖5所示,為本申請(qǐng)實(shí)施例提出的一種應(yīng)用服務(wù)器的結(jié)構(gòu)示意圖,包括獲取模塊51,用于向管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)。在具體的應(yīng)用場(chǎng)景中,獲取模塊51具體包括設(shè)置子模塊511,用于設(shè)置獲取數(shù)據(jù)標(biāo)識(shí)的策略。獲取子模塊512,與設(shè)置子模塊511相連接,用于根據(jù)設(shè)置子模塊511所設(shè)置的獲 取數(shù)據(jù)標(biāo)識(shí)的策略,向管理服務(wù)器獲取目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。在具體的應(yīng)用場(chǎng)景中,設(shè)置子模塊511所設(shè)置的獲取數(shù)據(jù)標(biāo)識(shí)的策略包括以下兩 種情況情況一、當(dāng)應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),向管理服務(wù)器請(qǐng)求目 標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。這種情況的數(shù)據(jù)標(biāo)識(shí)獲取請(qǐng)求的針對(duì)性比較強(qiáng),需要對(duì)指定的目標(biāo)數(shù)據(jù)進(jìn)行數(shù)據(jù) 標(biāo)識(shí)獲取操作,所獲取的數(shù)據(jù)標(biāo)識(shí)的范圍為一個(gè)或多個(gè)目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),因此, 在獲取子模塊512進(jìn)行數(shù)據(jù)標(biāo)識(shí)的獲取時(shí),向管理服務(wù)器發(fā)送的獲取請(qǐng)求中需要攜帶目標(biāo) 數(shù)據(jù)的指示信息,具體的指示信息的類型變化并不會(huì)影響本申請(qǐng)的保護(hù)范圍。情況二、當(dāng)應(yīng)用服務(wù)器初始化時(shí),向管理服務(wù)器獲取系統(tǒng)當(dāng)前所有數(shù)據(jù)的數(shù)據(jù)標(biāo) 識(shí)。這種情況的數(shù)據(jù)標(biāo)識(shí)獲取是一次性的,在應(yīng)用服務(wù)器初始化時(shí),一次性的向管理 服務(wù)器獲取所有當(dāng)前數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。在此種情況下,還需要將獲取到的系統(tǒng)當(dāng)前所有數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)在本地進(jìn)行存 儲(chǔ)?;谏鲜鲆?,獲取模塊511還包括存儲(chǔ)子模塊513,與獲取子模塊512相連接,用于存儲(chǔ)獲取子模塊512所獲取的目 標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。這樣處理的好處在于,應(yīng)用服務(wù)器發(fā)起數(shù)據(jù)操作時(shí),直接可以根據(jù)本地存儲(chǔ)的數(shù) 據(jù)標(biāo)識(shí)找到相應(yīng)的數(shù)據(jù)信息,而不再需要與管理服務(wù)器進(jìn)行信息交互,節(jié)約了信息交互的 時(shí)間,提高了相應(yīng)的處理效率。識(shí)別模塊52,與獲取模塊51相連接,用于識(shí)別獲取模塊51所獲取的數(shù)據(jù)標(biāo)識(shí)中所 包含的目標(biāo)數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限。但是這樣的方案需要應(yīng)用服務(wù)器中提供相應(yīng)的數(shù)據(jù)標(biāo)識(shí)的存儲(chǔ)空間,以保證獲取 到的全部數(shù)據(jù)標(biāo)識(shí)都能夠存儲(chǔ)在相應(yīng)的空間中,由于數(shù)據(jù)標(biāo)識(shí)的大小都很有限,所以,并不 會(huì)造成太大的存儲(chǔ)負(fù)擔(dān),但是否應(yīng)用此種方案需要根據(jù)具體的應(yīng)用場(chǎng)景來(lái)衡量。上述兩種方式都可以實(shí)現(xiàn)數(shù)據(jù)標(biāo)識(shí)信息的獲取,具體應(yīng)用哪種方式并不影響本申 請(qǐng)的保護(hù)范圍。處理模塊53,與識(shí)別模塊52相連接,用于根據(jù)識(shí)別模塊52所識(shí)別的目標(biāo)數(shù)據(jù)的地址信息訪問(wèn)目標(biāo)數(shù)據(jù),并根據(jù)識(shí)別模塊52所識(shí)別的目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán)限,對(duì)目標(biāo)數(shù)據(jù)進(jìn)行 相應(yīng)的操作。在具體的應(yīng)用場(chǎng)景中,應(yīng)用服務(wù)器還包括通信模塊M,與獲取模塊51相連接,用于接收管理服務(wù)器發(fā)送的包含新的數(shù)據(jù)標(biāo) 識(shí)和/或新加入的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新獲取模塊51所獲取的目標(biāo)數(shù)據(jù)的數(shù)據(jù) 標(biāo)識(shí)或系統(tǒng)當(dāng)前全部數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。另一方面,本申請(qǐng)實(shí)施例還提供了一種管理服務(wù)器,應(yīng)用于包括一個(gè)管理服務(wù)器、 一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)中,其結(jié)構(gòu)示意圖如圖6所示,包括設(shè)置模塊61,用于設(shè)置數(shù)據(jù)庫(kù)管理策略和讀寫(xiě)負(fù)載調(diào)整策略。處理模塊62,與設(shè)置模塊61相連接,用于根據(jù)設(shè)置模塊61所設(shè)置的數(shù)據(jù)庫(kù)管理策 略和讀寫(xiě)負(fù)載調(diào)整策略,將系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中。這樣的處理目的就是為了實(shí)現(xiàn)系統(tǒng)中數(shù)據(jù)的分表分庫(kù)處理,從而提高系統(tǒng)中的數(shù) 據(jù)負(fù)載分擔(dān)。標(biāo)識(shí)模塊63,與設(shè)置模塊61相連接,用于根據(jù)設(shè)置模塊61所設(shè)置的數(shù)據(jù)庫(kù)管理策 略和讀寫(xiě)負(fù)載調(diào)整策略,為各數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),數(shù)據(jù)標(biāo)識(shí)包括數(shù)據(jù)的地 址信息和數(shù)據(jù)的讀寫(xiě)權(quán)限。在具體的應(yīng)用場(chǎng)景中,多個(gè)數(shù)據(jù)服務(wù)器組成至少一個(gè)數(shù)據(jù)服務(wù)器群落,數(shù)據(jù)服務(wù) 器群落中包含一個(gè)主數(shù)據(jù)服務(wù)器和至少一個(gè)從數(shù)據(jù)服務(wù)器,處理模塊62根據(jù)設(shè)置模塊61 所設(shè)置的讀寫(xiě)負(fù)載調(diào)整策略,將系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中,具體為處理模塊62根據(jù)設(shè)置模塊61所設(shè)置的系統(tǒng)中的數(shù)據(jù)的讀寫(xiě)負(fù)載調(diào)整策略,將數(shù) 據(jù)分配給各數(shù)據(jù)服務(wù)器群落中相應(yīng)的數(shù)據(jù)服務(wù)器中;其中,讀寫(xiě)負(fù)載調(diào)整策略中關(guān)于分別進(jìn)行讀寫(xiě)操作的數(shù)據(jù)的分配規(guī)則包括處理模塊62將需要進(jìn)行寫(xiě)操作的數(shù)據(jù)分配到各數(shù)據(jù)服務(wù)器群落中的主數(shù)據(jù)服務(wù) 器中;處理模塊62將需要進(jìn)行讀操作的數(shù)據(jù)分配到各數(shù)據(jù)服務(wù)器群落中的從數(shù)據(jù)服務(wù) 器中。需要指出的是,上述的兩種分配規(guī)則對(duì)數(shù)據(jù)的操作類型范圍要求不同,對(duì)于存儲(chǔ) 于主數(shù)據(jù)服務(wù)器中的數(shù)據(jù),為具有寫(xiě)操作需求的數(shù)據(jù),但是存儲(chǔ)于主數(shù)據(jù)服務(wù)器中的數(shù)據(jù) 同樣可以進(jìn)行讀操作,但是,與之相對(duì)的,對(duì)于存儲(chǔ)于從數(shù)據(jù)服務(wù)器中的數(shù)據(jù),為具有讀操 作需求的數(shù)據(jù),但是存儲(chǔ)于從數(shù)據(jù)服務(wù)器中的數(shù)據(jù)只能進(jìn)行讀操作,而不能進(jìn)行寫(xiě)操作。這樣進(jìn)行數(shù)據(jù)分配的的好處在于將需要進(jìn)行較大處理量的寫(xiě)操作分配給主數(shù)據(jù) 服務(wù)器來(lái)完成,將需要進(jìn)行的處理量比較小的讀操作分配給從數(shù)據(jù)服務(wù)器來(lái)完成,不僅如 此,由于寫(xiě)操作需要涉及數(shù)據(jù)信息的修改,因此,需要在更高級(jí)別的主數(shù)據(jù)服務(wù)器中進(jìn)行, 這樣便于數(shù)據(jù)的管理和權(quán)限的具體分配。在另一種具體的應(yīng)用場(chǎng)景中,設(shè)置模塊61,還用于設(shè)置容災(zāi)策略;處理模塊62,還用于根據(jù)設(shè)置模塊61所設(shè)置的容災(zāi)策略,分別為系統(tǒng)中全部或部 分?jǐn)?shù)據(jù)服務(wù)器建立備份服務(wù)器,并將數(shù)據(jù)服務(wù)器中所存儲(chǔ)的數(shù)據(jù)復(fù)制到相應(yīng)的備份服務(wù)器 中。具體的備份服務(wù)器建立策略可以是在新的服務(wù)器設(shè)備上建立,也可以是在現(xiàn)有的其他數(shù)據(jù)服務(wù)器中的空余空間中建立。在新的服務(wù)器設(shè)備中建立備份服務(wù)器有利于備份數(shù)據(jù)的獨(dú)立管理,但是需要進(jìn)行 新的設(shè)備投入。在現(xiàn)有的其他數(shù)據(jù)服務(wù)器中的空余空間中建立備份服務(wù)器可以有效的降低成本 投入,但是需要建立相應(yīng)的空間監(jiān)視機(jī)制,保障能夠及時(shí)發(fā)現(xiàn)現(xiàn)有的其他數(shù)據(jù)服務(wù)器中的 空余存儲(chǔ)空間,并保證已被利用作為備份空間的數(shù)據(jù)服務(wù)器空間不會(huì)與其他數(shù)據(jù)的存儲(chǔ)發(fā) 生矛盾。不僅如此,為了適應(yīng)數(shù)據(jù)信息的變化,管理服務(wù)器還包括調(diào)整模塊64,用于當(dāng)數(shù)據(jù)服務(wù)器的數(shù)據(jù)不能被訪問(wèn)時(shí),將數(shù)據(jù)服務(wù)器中的數(shù)據(jù)所 對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)中所包含的數(shù)據(jù)的地址信息變更為數(shù)據(jù)服務(wù)器所對(duì)應(yīng)的備份服務(wù)器的地址f曰息。通過(guò)這樣的處理,當(dāng)后續(xù)再接到對(duì)于相應(yīng)數(shù)據(jù)的操作請(qǐng)求時(shí),管理服務(wù)器返回的 將是變更后的數(shù)據(jù)標(biāo)識(shí),相應(yīng)的應(yīng)用服務(wù)器將通過(guò)更改后的地址向備份服務(wù)器獲取相應(yīng)的 數(shù)據(jù)信息,從而,保證具體的應(yīng)用進(jìn)程不會(huì)因?yàn)閿?shù)據(jù)不能訪問(wèn)而中斷。與現(xiàn)有技術(shù)相比,本申請(qǐng)實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)通過(guò)應(yīng)用本申請(qǐng)實(shí)施例的技術(shù)方案,可以在系統(tǒng)的數(shù)據(jù)中添加數(shù)據(jù)標(biāo)識(shí),標(biāo)識(shí)出 該數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限信息,從而可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的分表分庫(kù)管理,并可以根 據(jù)系統(tǒng)中的數(shù)據(jù)庫(kù)管理策略進(jìn)行相應(yīng)的信息調(diào)度,提高系統(tǒng)中的數(shù)據(jù)信息管理效率。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可以通 過(guò)硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本申 請(qǐng)的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ) 介質(zhì)(可以是⑶-ROM,U盤(pán),移動(dòng)硬盤(pán)等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可 以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施場(chǎng)景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場(chǎng)景的示意圖,附圖中的模塊或 流程并不一定是實(shí)施本申請(qǐng)所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施場(chǎng)景中的裝置中的模塊可以按照實(shí)施場(chǎng)景描述進(jìn) 行分布于實(shí)施場(chǎng)景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場(chǎng)景的一個(gè)或多個(gè)裝 置中。上述實(shí)施場(chǎng)景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。上述本申請(qǐng)序號(hào)僅僅為了描述,不代表實(shí)施場(chǎng)景的優(yōu)劣。以上公開(kāi)的僅為本申請(qǐng)的幾個(gè)具體實(shí)施場(chǎng)景,但是,本申請(qǐng)并非局限于此,任何本 領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本申請(qǐng)的保護(hù)范圍。
權(quán)利要求
1.一種數(shù)據(jù)庫(kù)信息管理方法,應(yīng)用于包括一個(gè)管理服務(wù)器、一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù) 據(jù)服務(wù)器的系統(tǒng)中,其特征在于,所述管理服務(wù)器為所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo) 識(shí),所述數(shù)據(jù)標(biāo)識(shí)包括所述數(shù)據(jù)的地址信息,所述方法包括所述應(yīng)用服務(wù)器向所述管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí);所述應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)標(biāo)識(shí)中所包含的所述目標(biāo)數(shù)據(jù)的地址信息訪問(wèn)所述目 標(biāo)數(shù)據(jù),對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行相應(yīng)的操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述管理服務(wù)器為所述數(shù)據(jù)服務(wù)器中的數(shù) 據(jù)添加數(shù)據(jù)標(biāo)識(shí)之前,還包括所述管理服務(wù)器根據(jù)預(yù)設(shè)的數(shù)據(jù)庫(kù)管理策略,將所述系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的 數(shù)據(jù)服務(wù)器中。
3.如權(quán)利要求2所述的方法,其特征在于,所述多個(gè)數(shù)據(jù)服務(wù)器組成至少一個(gè)數(shù)據(jù)服 務(wù)器群落,所述數(shù)據(jù)服務(wù)器群落中包含一個(gè)主數(shù)據(jù)服務(wù)器和至少一個(gè)從數(shù)據(jù)服務(wù)器,所述 管理服務(wù)器將所述系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中,具體為所述管理服務(wù)器根據(jù)所述系統(tǒng)中的數(shù)據(jù)的讀寫(xiě)負(fù)載調(diào)整策略,將所述數(shù)據(jù)分配給各所 述數(shù)據(jù)服務(wù)器群落中相應(yīng)的主數(shù)據(jù)服務(wù)器或從數(shù)據(jù)服務(wù)器進(jìn)行存儲(chǔ);其中,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器群落中的主數(shù)據(jù)服務(wù)器中存儲(chǔ)的數(shù)據(jù) 具有可以進(jìn)行讀操作和/或?qū)懖僮鞯臋?quán)限,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器群落 中的從數(shù)據(jù)服務(wù)器中存儲(chǔ)的數(shù)據(jù)只具有進(jìn)行讀操作的權(quán)限。
4.如權(quán)利要求2所述的方法,其特征在于,所述管理服務(wù)器根據(jù)預(yù)設(shè)的數(shù)據(jù)庫(kù)管理策 略,將所述系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中之后,還包括所述管理服務(wù)器根據(jù)預(yù)設(shè)的容災(zāi)策略,分別為所述系統(tǒng)中全部或部分?jǐn)?shù)據(jù)服務(wù)器建立 備份服務(wù)器,并將所述數(shù)據(jù)服務(wù)器中所存儲(chǔ)的數(shù)據(jù)復(fù)制到相應(yīng)的備份服務(wù)器中。
5.如權(quán)利要求4所述的方法,其特征在于,當(dāng)所述數(shù)據(jù)服務(wù)器的數(shù)據(jù)不能被訪問(wèn)時(shí),還 包括所述管理服務(wù)器將所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)中所包含的地址信息 變更為所述數(shù)據(jù)服務(wù)器所對(duì)應(yīng)的備份服務(wù)器的地址信息。
6.如權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用服務(wù)器向所述管理服務(wù)器獲取目 標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),具體為當(dāng)所述應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)所述目標(biāo)數(shù)據(jù)時(shí),所述應(yīng)用服務(wù)器向所述管 理服務(wù)器請(qǐng)求所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),并接收所述管理服務(wù)器所返回的所述目標(biāo)數(shù)據(jù)的 數(shù)據(jù)標(biāo)識(shí);或,當(dāng)所述應(yīng)用服務(wù)器初始化時(shí),所述應(yīng)用服務(wù)器向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng)前所 有數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí),并在本地存儲(chǔ),當(dāng)所述應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)所述目標(biāo)數(shù) 據(jù)時(shí),所述應(yīng)用服務(wù)器在本地讀取所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。
7.如權(quán)利要求6所述的方法,其特征在于,還包括如果所述應(yīng)用服務(wù)器是在需要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),向所述管理服務(wù)器獲取所述目標(biāo)數(shù)據(jù) 所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí),則當(dāng)所述管理服務(wù)器判斷所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)發(fā)生變化時(shí),所述 管理服務(wù)器向所述應(yīng)用服務(wù)器發(fā)送包含新的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新所述應(yīng)用服務(wù)器所 獲取的目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí);如果所述應(yīng)用服務(wù)器是在初始化時(shí),向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng)前所有數(shù)據(jù)的 數(shù)據(jù)標(biāo)識(shí),并在本地進(jìn)行存儲(chǔ),則當(dāng)所述管理服務(wù)器判斷所述系統(tǒng)當(dāng)前的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí) 發(fā)生變化或有新的數(shù)據(jù)加入所述系統(tǒng)時(shí),所述管理服務(wù)器向所述應(yīng)用服務(wù)器發(fā)送包含更新 的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)或新加入的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新所述應(yīng)用服務(wù)器所獲取的 所述系統(tǒng)當(dāng)前全部數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。
8.如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)標(biāo)識(shí)還包括所述數(shù)據(jù)的讀寫(xiě)權(quán)限; 所述應(yīng)用服務(wù)器根據(jù)所述數(shù)據(jù)標(biāo)識(shí)中所包含的所述目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán)限,對(duì)所述目標(biāo)數(shù)據(jù) 進(jìn)行相應(yīng)的操作。
9.一種應(yīng)用服務(wù)器,應(yīng)用于包括一個(gè)管理服務(wù)器、一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器 的系統(tǒng)中,其特征在于,所述管理服務(wù)器為所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),所述數(shù) 據(jù)標(biāo)識(shí)包括所述數(shù)據(jù)的地址信息,包括獲取模塊,用于向所述管理服務(wù)器獲取目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí);識(shí)別模塊,與所述獲取模塊相連接,用于識(shí)別所述獲取模塊所獲取的數(shù)據(jù)標(biāo)識(shí)中所包 含的所述目標(biāo)數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限;處理模塊,與所述識(shí)別模塊相連接,用于根據(jù)所述識(shí)別模塊所識(shí)別的所述目標(biāo)數(shù)據(jù)的 地址信息訪問(wèn)所述目標(biāo)數(shù)據(jù),并根據(jù)所述識(shí)別模塊所識(shí)別的所述目標(biāo)數(shù)據(jù)的讀寫(xiě)權(quán)限,對(duì) 所述目標(biāo)數(shù)據(jù)進(jìn)行相應(yīng)的操作。
10.如權(quán)利要求9所述的應(yīng)用服務(wù)器,其特征在于,所述獲取模塊,具體包括設(shè)置子模塊,用于設(shè)置獲取數(shù)據(jù)標(biāo)識(shí)的策略,其中,所述獲取數(shù)據(jù)標(biāo)識(shí)的策略包括當(dāng) 所述應(yīng)用服務(wù)器所發(fā)起的業(yè)務(wù)需要訪問(wèn)目標(biāo)數(shù)據(jù)時(shí),向所述管理服務(wù)器請(qǐng)求所述目標(biāo)數(shù)據(jù) 的數(shù)據(jù)標(biāo)識(shí),或,當(dāng)所述應(yīng)用服務(wù)器初始化時(shí),向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng)前所有數(shù) 據(jù)的數(shù)據(jù)標(biāo)識(shí);獲取子模塊,與所述設(shè)置子模塊相連接,用于根據(jù)所述設(shè)置子模塊所設(shè)置的獲取數(shù)據(jù) 標(biāo)識(shí)的策略,向所述管理服務(wù)器獲取所述目標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)。
11.如權(quán)利要求10所述的應(yīng)用服務(wù)器,其特征在于,所述獲取模塊,還包括存儲(chǔ)子模塊,與所述獲取子模塊相連接,用于存儲(chǔ)所述獲取子模塊所獲取的所述目標(biāo) 數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí);其中,當(dāng)所述設(shè)置子模塊所設(shè)置的獲取數(shù)據(jù)標(biāo)識(shí)的策略為當(dāng)所述應(yīng)用服務(wù)器初始化 時(shí),向所述管理服務(wù)器獲取所述系統(tǒng)當(dāng)前所有數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)時(shí),所述存儲(chǔ)子模塊還用于 存儲(chǔ)所述系統(tǒng)當(dāng)前的其他數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)。
12.如權(quán)利要求9所述的應(yīng)用服務(wù)器,其特征在于,還包括通信模塊,與所述獲取模塊相連接,用于接收所述管理服務(wù)器發(fā)送的包含更新后的目 標(biāo)數(shù)據(jù)所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)和/或新加入的數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)的通知消息,更新所述獲取模塊 所獲取的目標(biāo)數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)或所述系統(tǒng)當(dāng)前全部數(shù)據(jù)的數(shù)據(jù)標(biāo)識(shí)。
13.—種管理服務(wù)器,應(yīng)用于包括一個(gè)管理服務(wù)器、一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器 的系統(tǒng)中,其特征在于,包括設(shè)置模塊,用于設(shè)置數(shù)據(jù)庫(kù)管理策略和讀寫(xiě)負(fù)載調(diào)整策略;處理模塊,與所述設(shè)置模塊相連接,用于根據(jù)所述設(shè)置模塊所設(shè)置的數(shù)據(jù)庫(kù)管理策略 和讀寫(xiě)負(fù)載調(diào)整策略,將所述系統(tǒng)中的數(shù)據(jù)分別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中;標(biāo)識(shí)模塊,用于根據(jù)所述設(shè)置模塊所設(shè)置的數(shù)據(jù)庫(kù)管理策略和讀寫(xiě)負(fù)載調(diào)整策略,為 各所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù)添加數(shù)據(jù)標(biāo)識(shí),所述數(shù)據(jù)標(biāo)識(shí)包括所述數(shù)據(jù)的地址信息。
14.如權(quán)利要求13所述的管理服務(wù)器,其特征在于,所述多個(gè)數(shù)據(jù)服務(wù)器組成至少一 個(gè)數(shù)據(jù)服務(wù)器群落,所述數(shù)據(jù)服務(wù)器群落中包含一個(gè)主數(shù)據(jù)服務(wù)器和至少一個(gè)從數(shù)據(jù)服務(wù) 器,所述處理模塊根據(jù)所述設(shè)置模塊所設(shè)置的讀寫(xiě)負(fù)載調(diào)整策略,將所述系統(tǒng)中的數(shù)據(jù)分 別存儲(chǔ)于相應(yīng)的數(shù)據(jù)服務(wù)器中,具體為所述處理模塊根據(jù)所述設(shè)置模塊所設(shè)置的當(dāng)前系統(tǒng)中的數(shù)據(jù)的讀寫(xiě)負(fù)載調(diào)整策略, 將所述數(shù)據(jù)分配給各所述數(shù)據(jù)服務(wù)器群落中相應(yīng)的主數(shù)據(jù)服務(wù)器或從數(shù)據(jù)服務(wù)器進(jìn)行存 儲(chǔ);其中,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器群落中的主數(shù)據(jù)服務(wù)器中存儲(chǔ)的數(shù)據(jù) 具有可以進(jìn)行讀操作和/或?qū)懖僮鞯臋?quán)限,所述管理服務(wù)器分配給各所述數(shù)據(jù)服務(wù)器群落 中的從數(shù)據(jù)服務(wù)器中存儲(chǔ)的數(shù)據(jù)只具有進(jìn)行讀操作的權(quán)限。
15.如權(quán)利要求13所述的管理服務(wù)器,其特征在于,所述設(shè)置模塊,還用于設(shè)置容災(zāi)策略;所述處理模塊,還用于根據(jù)所述設(shè)置模塊所設(shè)置的容災(zāi)策略,分別為所述系統(tǒng)中全部 或部分?jǐn)?shù)據(jù)服務(wù)器建立備份服務(wù)器,并將所述數(shù)據(jù)服務(wù)器中所存儲(chǔ)的數(shù)據(jù)復(fù)制到相應(yīng)的備 份服務(wù)器中。
16.如權(quán)利要求15所述的管理服務(wù)器,其特征在于,還包括調(diào)整模塊,用于當(dāng)所述數(shù)據(jù)服務(wù)器的數(shù)據(jù)不能被訪問(wèn)時(shí),將所述數(shù)據(jù)服務(wù)器中的數(shù)據(jù) 所對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)中所包含的所述數(shù)據(jù)的地址信息變更為所述數(shù)據(jù)服務(wù)器所對(duì)應(yīng)的備份 服務(wù)器的地址信息。
全文摘要
本申請(qǐng)公開(kāi)了一種數(shù)據(jù)庫(kù)信息管理方法和設(shè)備,應(yīng)用于包括一個(gè)管理服務(wù)器、一個(gè)應(yīng)用服務(wù)器和多個(gè)數(shù)據(jù)服務(wù)器的系統(tǒng)中,通過(guò)在系統(tǒng)的數(shù)據(jù)中添加數(shù)據(jù)標(biāo)識(shí),標(biāo)識(shí)出該數(shù)據(jù)的地址信息和讀寫(xiě)權(quán)限信息,從而可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)信息的分表分庫(kù)管理,并可以根據(jù)系統(tǒng)中的數(shù)據(jù)庫(kù)管理策略進(jìn)行相應(yīng)的信息調(diào)度,提高系統(tǒng)中的數(shù)據(jù)信息管理效率。
文檔編號(hào)G06F17/30GK102053982SQ200910210388
公開(kāi)日2011年5月11日 申請(qǐng)日期2009年11月2日 優(yōu)先權(quán)日2009年11月2日
發(fā)明者李帥, 魏虎 申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司