本發(fā)明涉及計算機軟件
技術(shù)領(lǐng)域:
,具體地說是一種大型應用系統(tǒng)的數(shù)據(jù)庫可橫向擴展方法。
背景技術(shù):
:隨著云計算技術(shù)的發(fā)展和成熟,云計算中心已經(jīng)在大型企業(yè)集團的信息化中逐步進入實用階段。大型企業(yè)集團的應用模式也從總部、二級集團的“分布集中”應用模式向總部“大集中”應用模式轉(zhuǎn)變。在總部“大集中”應用模式下,大型企業(yè)集團所有的應用系統(tǒng)的用戶共用總部提供的一套應用系統(tǒng),這樣的應用系統(tǒng)規(guī)模巨大,用戶數(shù)量從幾萬至幾十萬,云計算中心的各類服務器在幾十臺至數(shù)百臺之間,單個業(yè)務功能一年的交易數(shù)據(jù)存儲量在數(shù)千萬至數(shù)億行。在大規(guī)模應用中,隨著單位時間內(nèi)交易量的增加,應用服務器數(shù)量通過應用服務器集群方式很容易橫向擴展以增加計算能力,而關(guān)系型數(shù)據(jù)庫系統(tǒng)自身對橫向擴展支持的靈活性較差,而且數(shù)據(jù)之間的關(guān)系錯綜復雜,很難通過簡單、一致的技術(shù)手段靈活的進行橫向擴展,數(shù)據(jù)庫的橫向擴展能力往往成為瓶頸。基于此,現(xiàn)提供一種大型應用系統(tǒng)的數(shù)據(jù)庫可橫向擴展方法。技術(shù)實現(xiàn)要素:本發(fā)明的技術(shù)任務是針對以上不足之處,提供一種大型應用系統(tǒng)的數(shù)據(jù)庫可橫向擴展方法。一種大型應用系統(tǒng)的數(shù)據(jù)庫可橫向擴展方法,其具體實現(xiàn)過程為:首先定義數(shù)據(jù)庫集群,確定數(shù)據(jù)庫集群組成內(nèi)容;然后定義數(shù)據(jù)路由維度以及數(shù)據(jù)路由映射關(guān)系;最后根據(jù)上下文數(shù)據(jù)執(zhí)行路由解析,訪問特定數(shù)據(jù)庫。所述數(shù)據(jù)庫集群由若干數(shù)據(jù)庫組成,每個數(shù)據(jù)庫的描述信息為數(shù)據(jù)源,該數(shù)據(jù)源包括以下屬性:數(shù)據(jù)源標識、數(shù)據(jù)源編號、數(shù)據(jù)源名稱、數(shù)據(jù)源描述、數(shù)據(jù)源類型、數(shù)據(jù)庫連接信息;其中數(shù)據(jù)源標識是數(shù)據(jù)主鍵,數(shù)據(jù)源編號是數(shù)據(jù)源可人工識別的唯一標識,數(shù)據(jù)源類型是一個枚舉類型。在每個數(shù)據(jù)庫集群中包含一個主數(shù)據(jù)庫、若干個業(yè)務數(shù)據(jù)庫和若干個查詢數(shù)據(jù)庫;相對應的,數(shù)據(jù)源類型包含以下三個枚舉值:主庫、業(yè)務庫、查詢庫。所述數(shù)據(jù)路由維度為一個記錄列表,列表中每一行包括以下屬性:維度標識、維度編號、維度名稱、是否必選、維度描述;其中維度標識是數(shù)據(jù)主鍵,維度編號是維度可人工識別的唯一標識,是否必選用于標識該緯度值是否允許為空值。數(shù)據(jù)路由映射關(guān)系為一個記錄列表,列表中每一行包括以下屬性:維度值集合、數(shù)據(jù)源標識、描述,其中維度值組合是基于數(shù)據(jù)路由維度的記錄列表構(gòu)成的多個值的序列信息。上下文數(shù)據(jù)是訪問程序執(zhí)行過程中的上下文數(shù)據(jù)信息,在上下文數(shù)據(jù)中包含維度信息列表,該維度信息列表是鍵值對列表,其鍵為數(shù)據(jù)路由維度中的維度標識,其值為該維度的數(shù)據(jù)值。訪問程序執(zhí)行過程中,在獲取應訪問的數(shù)據(jù)庫時,基于上下文數(shù)據(jù)中包含的維度信息列表,通過對數(shù)據(jù)路由映射關(guān)系中的維度值集合進行查找匹配,從而獲取到特定的數(shù)據(jù)源標識,完成訪問。本發(fā)明的一種大型應用系統(tǒng)的數(shù)據(jù)庫可橫向擴展方法和現(xiàn)有技術(shù)相比,具有以下有益效果:本發(fā)明的一種大型應用系統(tǒng)的數(shù)據(jù)庫可橫向擴展方法,通過數(shù)據(jù)路由配置及解析機制,將對數(shù)據(jù)的訪問分流到不同的數(shù)據(jù)庫中,使同一應用的數(shù)據(jù)庫可有效的橫向擴展,從而降低大型應用對單一數(shù)據(jù)庫的訪問壓力,解決單一數(shù)據(jù)庫的性能瓶頸問題,提高大型應用整體運行的性能,實用性強,適用范圍廣泛,易于推廣。附圖說明附圖1為本發(fā)明的實現(xiàn)示意圖。具體實施方式下面結(jié)合附圖及具體實施例對本發(fā)明作進一步說明。如附圖1所示,本發(fā)明提供一種大型應用系統(tǒng)的數(shù)據(jù)庫可橫向擴展方法,其具體實現(xiàn)過程為:首先定義數(shù)據(jù)庫集群,確定數(shù)據(jù)庫集群組成內(nèi)容;然后定義數(shù)據(jù)路由維度以及數(shù)據(jù)路由映射關(guān)系;最后根據(jù)上下文數(shù)據(jù)執(zhí)行路由解析,訪問特定數(shù)據(jù)庫。所述數(shù)據(jù)庫集群由若干數(shù)據(jù)庫組成,每個數(shù)據(jù)庫的描述信息為數(shù)據(jù)源,該數(shù)據(jù)源包括以下屬性:數(shù)據(jù)源標識、數(shù)據(jù)源編號、數(shù)據(jù)源名稱、數(shù)據(jù)源描述、數(shù)據(jù)源類型、數(shù)據(jù)庫連接信息;其中數(shù)據(jù)源標識是數(shù)據(jù)主鍵,數(shù)據(jù)源編號是數(shù)據(jù)源可人工識別的唯一標識,數(shù)據(jù)源類型是一個枚舉類型。在每個數(shù)據(jù)庫集群中包含一個主數(shù)據(jù)庫、若干個業(yè)務數(shù)據(jù)庫和若干個查詢數(shù)據(jù)庫;相對應的,數(shù)據(jù)源類型包含以下三個枚舉值:主庫、業(yè)務庫、查詢庫。所述數(shù)據(jù)路由維度用于描述應用程序訪問數(shù)據(jù)庫的路由關(guān)系的結(jié)構(gòu)。數(shù)據(jù)路由維度為一個記錄列表,列表中每一行包括以下屬性:維度標識、維度編號、維度名稱、是否必選、維度描述;其中維度標識是數(shù)據(jù)主鍵,維度編號是維度可人工識別的唯一標識,是否必選用于標識該緯度值是否允許為空值。數(shù)據(jù)路由映射關(guān)系,是基于數(shù)據(jù)庫集群、數(shù)據(jù)路由維度中的數(shù)據(jù)源定義及數(shù)據(jù)路由維度定義,定義的在不同維度值設定下與數(shù)據(jù)源的匹配映射關(guān)系。數(shù)據(jù)路由映射關(guān)系為一個記錄列表,列表中每一行包括以下屬性:維度值集合、數(shù)據(jù)源標識、描述,其中維度值組合是基于數(shù)據(jù)路由維度的記錄列表構(gòu)成的多個值的序列信息。維度值集合是數(shù)據(jù)路由映射關(guān)系記錄列表行的唯一性約束,特定的維度值集合唯一匹配一個數(shù)據(jù)源標識。上下文數(shù)據(jù)是訪問程序執(zhí)行過程中的上下文數(shù)據(jù)信息,在上下文數(shù)據(jù)中包含維度信息列表,該維度信息列表是鍵值對列表,其鍵為數(shù)據(jù)路由維度中的維度標識,其值為該維度的數(shù)據(jù)值。訪問程序執(zhí)行過程中,在獲取應訪問的數(shù)據(jù)庫時,基于上下文數(shù)據(jù)中包含的維度信息列表,通過對數(shù)據(jù)路由映射關(guān)系中的維度值集合進行查找匹配,從而獲取到特定的數(shù)據(jù)源標識,完成訪問。進一步的,根據(jù)獲取到的特定的數(shù)據(jù)源標識,基于步驟一中定義的數(shù)據(jù)源,獲取到與數(shù)據(jù)源標識匹配的數(shù)據(jù)源信息,從而進一步的獲取到數(shù)據(jù)源信息中的數(shù)據(jù)庫連接信息,在程序中建立該數(shù)據(jù)源指定的數(shù)據(jù)庫,進行數(shù)據(jù)訪問。具體實例:某大型系統(tǒng)中,基于步驟1,定義數(shù)據(jù)庫集群信息如下:數(shù)據(jù)源標識數(shù)據(jù)源編號數(shù)據(jù)源名稱數(shù)據(jù)源類型數(shù)據(jù)庫連接信息DS1Master共享庫主庫…DS2Biz1業(yè)務庫1業(yè)務庫…DS3Biz2業(yè)務庫2業(yè)務庫…基于步驟2,定義的數(shù)據(jù)路由維度信息如下,代表在該系統(tǒng)中,業(yè)務應用數(shù)據(jù)可以按照系統(tǒng)的模塊和行業(yè)進行數(shù)據(jù)劃分:維度標識維度編號維度名稱是否必選維度描述D1Module模塊是系統(tǒng)模塊維度D2Scope行業(yè)是行業(yè)維度基于步驟3,假設系統(tǒng)中同時有M1、M2兩個模塊,有S1、S2兩個行業(yè),則建立的數(shù)據(jù)路由映射關(guān)系如下:基于步驟4,如果當前程序功能是M1模塊的功能,并且設定的行業(yè)是S1,則程序中的上下文數(shù)據(jù)中包含的維度信息列表信息如下:鍵值ModuleM1ScopeS1則基于步驟4的解析規(guī)則,獲取到當前功能對應的數(shù)據(jù)源信息為DS1,根據(jù)DS1程序可獲取到DS1對應的數(shù)據(jù)庫連接信息,從而建立相應的數(shù)據(jù)庫連接,訪問DS1對應的數(shù)據(jù)庫數(shù)據(jù)信息。本發(fā)明通過以上的技術(shù)實現(xiàn)方法,可在大型應用系統(tǒng)的大數(shù)據(jù)量、高并發(fā)情況下,有效的通過數(shù)據(jù)路由配置及解析機制,將對數(shù)據(jù)的訪問分流到不同的數(shù)據(jù)庫中,使同一應用的數(shù)據(jù)庫可有效的橫向擴展,從而降低大型應用對單一數(shù)據(jù)庫的訪問壓力,解決單一數(shù)據(jù)庫的性能瓶頸問題,提高大型應用整體運行的性能。通過上面具體實施方式,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應當理解,本發(fā)明并不限于上述的具體實施方式。在公開的實施方式的基礎(chǔ)上,所述
技術(shù)領(lǐng)域:
的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。當前第1頁1 2 3