通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法和數(shù)據(jù)庫中間件的制作方法
【專利摘要】本發(fā)明公開了一種通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法和數(shù)據(jù)庫中間件,其中,該方法包括:數(shù)據(jù)庫中間件接收訪問請求,訪問請求攜帶有檢索條件;數(shù)據(jù)庫中間件根據(jù)檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合檢索條件的數(shù)據(jù)信息。本發(fā)明通過數(shù)據(jù)庫中間件接收訪問請求,利用數(shù)據(jù)庫中間件按照訪問請求中的檢索條件進行檢索,通過該方法得到數(shù)據(jù)信息,其通過數(shù)據(jù)庫中間件處理原來需要開發(fā)人員完成的工作,處理時間和處理速度都有較大提升,解決了現(xiàn)有技術(shù)的架構(gòu)下,開發(fā)人員得到數(shù)據(jù)信息的過程較為繁瑣復(fù)雜,極大的浪費開發(fā)人員的時間和精力的問題。
【專利說明】通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法和數(shù)據(jù)庫中間件
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)領(lǐng)域,特別是涉及一種通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法和數(shù)據(jù) 庫中間件。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)的日益發(fā)展,各個網(wǎng)站的訪問量和數(shù)據(jù)量都與日俱增,系統(tǒng)由原有的基 于數(shù)據(jù)庫的存儲方式發(fā)展成多種的數(shù)據(jù)存儲方式并存,數(shù)據(jù)庫架構(gòu)也就變得越來越復(fù)雜, 現(xiàn)有的單一的數(shù)據(jù)庫已經(jīng)滿足不了原來的需求,進而發(fā)展成多種解決問題的實現(xiàn)方式,需 要滿足以下條件:對數(shù)據(jù)庫進行讀寫分離;采用數(shù)據(jù)庫前端加緩存的方式;采用分庫分表 的方式來提升集群的響應(yīng)能力和存儲容量。
[0003] 在這同時,由于系統(tǒng)的發(fā)展,網(wǎng)絡(luò)公司的發(fā)展也變得越來越龐大,部門劃分越來越 多,各個技術(shù)部門由于解決問題的場景各自不一樣,要求也不一樣,導(dǎo)致了各個部門采用的 技術(shù)體系不一樣,譬如有些部門采用java語言進行業(yè)務(wù)開發(fā),有些部門采用C++等進行業(yè) 務(wù)開發(fā),不同的業(yè)務(wù)開發(fā)語言也會帶來很多不一樣的訪問方式,java語言采用jdbc的方 式,而C、C++、PHP等采用開放數(shù)據(jù)庫互連(Open Database Connectivity,簡稱為ODBC)的 方式,存在著不同異構(gòu)的系統(tǒng)。
[0004] 由于技術(shù)架構(gòu)的變更,由單一的簡單直接的方式訪問,變成復(fù)雜的異構(gòu)的方式,系 統(tǒng)架構(gòu)越來越復(fù)雜,開發(fā)和維護難度越來越難,出錯幾率越來越大,可擴展和可維護性比較 弱。
[0005] 現(xiàn)有架構(gòu)下,如某一線工程的開發(fā)人員想要調(diào)用相應(yīng)的程序,其需要對多個存儲 不同語言或不同業(yè)務(wù)的服務(wù)器進行訪問,訪問時,異構(gòu)的系統(tǒng)訪問過程較為復(fù)雜,且訪問后 還需要對得到的結(jié)果進行處理,以得數(shù)據(jù)信息,過程繁瑣復(fù)雜,極大的浪費開發(fā)人員的時間 和精力。
[0006] 現(xiàn)有對數(shù)據(jù)庫的訪問,大多數(shù)是在應(yīng)用編碼中實現(xiàn)的,像開源社區(qū)的Mysql proxy,采用的是基于mysql協(xié)議,通過lua腳本進行編程控制的方式完成數(shù)據(jù)庫的路由。
[0007] 也有些技術(shù)方案采用客戶端的方式進行封裝,完成透明化處理。具體的實現(xiàn)方案 可以歸結(jié)為三種方式:1.基于數(shù)據(jù)訪問層(Data Access Layer,簡稱為DAL)的方式;2.基 于客戶端框架的方式;3.基于數(shù)據(jù)庫客戶端協(xié)議的方式?,F(xiàn)有技術(shù)的缺點如下:
[0008] 對于客戶端來說,其封裝不完善,功能比較單一,可移植性比較差,使用成本比較 高,僅僅局限于當(dāng)前語言(譬如:java),客戶端訪問僅僅局限于該公司內(nèi)部使用到的技 術(shù)和方案,數(shù)據(jù)訪問方式僅僅局限于對應(yīng)的數(shù)據(jù)庫,不能支持讀寫分離、高可用性(High Available,簡稱為HA)、Failover、數(shù)據(jù)遷移、數(shù)據(jù)同步等功能。
[0009] 對于服務(wù)端來說,服務(wù)端需要有專用的服務(wù)器集群,通過集群轉(zhuǎn)發(fā),服務(wù)器集群作 為后端數(shù)據(jù)庫的代理,服務(wù)器投入成本較高,同樣服務(wù)器集群取代了數(shù)據(jù)庫成為了一個中 心化的組件,中心化的問題比較嚴(yán)重,當(dāng)中間集群出現(xiàn)故障的時候,會影響整個網(wǎng)站,導(dǎo)致 網(wǎng)站不可用,影響范圍較大,同時,基于代理的方式,不方便擴展。
[0010] 現(xiàn)有架構(gòu)下,開發(fā)人員得到數(shù)據(jù)信息的過程較為繁瑣復(fù)雜,極大的浪費開發(fā)人員 的時間和精力。
【發(fā)明內(nèi)容】
[0011] 本發(fā)明提供了一種通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法和數(shù)據(jù)庫中間件,用以解決 現(xiàn)有技術(shù)的架構(gòu)下,開發(fā)人員得到數(shù)據(jù)信息的過程較為繁瑣復(fù)雜,極大的浪費開發(fā)人員的 時間和精力的問題。
[0012] 為解決上述技術(shù)問題,一方面,本發(fā)明提供一種通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方 法,包括:數(shù)據(jù)庫中間件接收訪問請求,所述訪問請求攜帶有檢索條件;所述數(shù)據(jù)庫中間件 根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合所述檢索條件的數(shù)據(jù)信息。
[0013] 進一步,數(shù)據(jù)庫中間件接收訪問請求之前,還包括:加載預(yù)設(shè)的配置文件,其中,力口 載過程包括:建立二級層級的虛擬節(jié)點,所述二級層級的虛擬節(jié)點用于控制讀寫分離和調(diào) 用數(shù)據(jù)時長,其中,第一層級虛擬節(jié)點包括:第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,第二層級虛 擬節(jié)點包括:與數(shù)據(jù)庫的對應(yīng)關(guān)系表;獲取路由的配置規(guī)則。
[0014] 進一步,加載預(yù)設(shè)的配置文件之后,還包括:將多個應(yīng)用組件進行封裝,并通過預(yù) 定訪問接口進行數(shù)據(jù)庫的訪問操作。
[0015] 進一步,所述數(shù)據(jù)庫中間件根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符 合所述檢索條件的數(shù)據(jù)信息之后,還包括:將所述數(shù)據(jù)信息進行集合,并將集合后的數(shù)據(jù)信 息進行輸出。
[0016] 進一步,當(dāng)所述訪問請求為來自客戶端的訪問請求時,所述數(shù)據(jù)庫中間件根據(jù)所 述檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合所述檢索條件的數(shù)據(jù)信息包括:解析所述 訪問請求中檢索條件對應(yīng)的sql語句,并對解析后的sql語句進行分析,以確定需要路由的 第一層級虛擬節(jié)點的配置參數(shù);將所述配置參數(shù)發(fā)送至路由器,由路由器調(diào)用所述配置參 數(shù)對應(yīng)的配置規(guī)則;根據(jù)所述配置規(guī)則對確定的第一層級虛擬節(jié)點執(zhí)行路由過程,以得到 符合所述訪問請求的數(shù)據(jù)信息。
[0017] 進一步,由路由器調(diào)用所述配置參數(shù)對應(yīng)的配置規(guī)則包括:路由器將包括配置參 數(shù)的調(diào)用指令發(fā)送至存儲配置規(guī)則的設(shè)備,存儲配置規(guī)則的設(shè)備根據(jù)所述配置參數(shù)確定路 由時需要的配置規(guī)則,并將所述配置規(guī)則發(fā)送至所述路由器;或者,路由器通過預(yù)設(shè)策略確 定路由時需要的配置規(guī)則,從存儲配置規(guī)則的設(shè)備中獲取所述需要的配置規(guī)則。
[0018] 進一步,根據(jù)所述配置規(guī)則對確定的第一層級虛擬節(jié)點執(zhí)行路由過程,以得到符 合所述訪問請求的數(shù)據(jù)信息包括:按照所述配置規(guī)則查找對應(yīng)的第一層級虛擬節(jié)點;在找 到的第一層級虛擬節(jié)點上查找第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,以確定下一級的第二層級 虛擬節(jié)點;查找確定的第二層級虛擬節(jié)點對應(yīng)的數(shù)據(jù)庫,并在所述數(shù)據(jù)庫中執(zhí)行sql語句, 以得到符合所述訪問請求的數(shù)據(jù)信息。
[0019] 進一步,對解析后的sql語句進行分析,以確定需要路由的第一層級虛擬節(jié)點的 配置參數(shù)之后,還包括:對分析得到的配置參數(shù)進行安全檢測;在所述配置參數(shù)安全的情 況下,將所述配置參數(shù)發(fā)送至路由器。
[0020] 進一步,所述方法還包括:在第一層級虛擬節(jié)點和/或第二層級虛擬節(jié)點出現(xiàn)故 障的情況下,按照預(yù)設(shè)負(fù)載均衡策略和/或預(yù)設(shè)高可用處理策略執(zhí)行sql語句。
[0021] 進一步,所述方法還包括:在所述數(shù)據(jù)庫中執(zhí)行Sql語句之前和之后,分別對當(dāng)前 時刻的數(shù)據(jù)信息進行采樣,以記錄當(dāng)前時刻的數(shù)據(jù)信息。
[0022] 進一步,所述數(shù)據(jù)庫中間件根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索之前,還包 括:當(dāng)所述訪問請求為來自服務(wù)端的訪問請求時,將從客戶端獲取的鏈接處理層Golang 語句進行10處理;對10處理后的所述鏈接處理層Golang語句進行封裝,并將封裝后的 Golang語句解析成sql語句;再按照所述訪問請求為來自客戶端的訪問請求時的情況,執(zhí) 行所述數(shù)據(jù)庫中間件根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索。
[0023] 另一方面,本發(fā)明還提供一種數(shù)據(jù)庫中間件,包括:接收模塊,用于接收訪問請求, 所述訪問請求攜帶有檢索條件;檢索模塊,用于根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索, 以找到符合所述檢索條件的數(shù)據(jù)信息。
[0024] 進一步,所述數(shù)據(jù)庫中間件還包括:加載模塊,用于加載預(yù)設(shè)的配置文件,其中,力口 載過程包括:建立二級層級的虛擬節(jié)點,所述二級層級的虛擬節(jié)點用于控制讀寫分離和調(diào) 用數(shù)據(jù)時長,其中,第一層級虛擬節(jié)點包括:第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,第二層級虛 擬節(jié)點包括:與數(shù)據(jù)庫的對應(yīng)關(guān)系表;獲取路由的配置規(guī)則;封裝模塊,用于將多個應(yīng)用組 件進行封裝,并通過預(yù)定訪問接口進行數(shù)據(jù)庫的訪問操作。
[0025] 進一步,所述數(shù)據(jù)庫中間件還包括:集合模塊,用于將所述數(shù)據(jù)信息進行集合,并 將集合后的數(shù)據(jù)信息進行輸出。
[0026] 進一步,當(dāng)所述訪問請求為來自客戶端的訪問請求時,所述檢索模塊包括:解析分 析單元,用于解析所述訪問請求中檢索條件對應(yīng)的sql語句,并對解析后的sql語句進行分 析,以確定需要路由的第一層級虛擬節(jié)點的配置參數(shù);路由單元,用于接收所述配置參數(shù), 并調(diào)用所述配置參數(shù)對應(yīng)的配置規(guī)則,以根據(jù)所述配置規(guī)則對確定的第一層級虛擬節(jié)點執(zhí) 行路由過程,得到符合所述訪問請求的數(shù)據(jù)信息。
[0027] 進一步,所述路由單元,還用于將包括配置參數(shù)的調(diào)用指令發(fā)送至存儲配置規(guī)則 的設(shè)備,以使得存儲配置規(guī)則的設(shè)備根據(jù)所述配置參數(shù)確定路由時需要的配置規(guī)則;或者, 用于通過預(yù)設(shè)策略確定路由時需要的配置規(guī)則,從存儲配置規(guī)則的設(shè)備中獲取所述需要的 配置規(guī)則。
[0028] 進一步,所述路由單元,還用于按照所述配置規(guī)則查找對應(yīng)的第一層級虛擬節(jié)點; 在找到的第一層級虛擬節(jié)點上查找第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,以確定下一級的第二 層級虛擬節(jié)點;查找確定的第二層級虛擬節(jié)點對應(yīng)的數(shù)據(jù)庫,并在所述數(shù)據(jù)庫中執(zhí)行sql 語句,以得到符合所述訪問請求的數(shù)據(jù)信息。
[0029] 進一步,數(shù)據(jù)庫中間件還包括:安全檢查單元,用于對分析得到的配置參數(shù)進行安 全檢測;在所述配置參數(shù)安全的情況下,將所述配置參數(shù)發(fā)送至路由單元。
[0030] 本發(fā)明通過數(shù)據(jù)庫中間件接收訪問請求,利用數(shù)據(jù)庫中間件按照訪問請求中的檢 索條件進行檢索,通過該方法得到數(shù)據(jù)信息,其通過數(shù)據(jù)庫中間件處理原來需要開發(fā)人員 完成的工作,處理時間和處理速度都有較大提升,解決了現(xiàn)有技術(shù)的架構(gòu)下,開發(fā)人員得到 數(shù)據(jù)信息的過程較為繁瑣復(fù)雜,極大的浪費開發(fā)人員的時間和精力的問題。
【專利附圖】
【附圖說明】
[0031] 圖1是本發(fā)明實施例中通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法的流程圖;
[0032] 圖2是本發(fā)明實施例中數(shù)據(jù)庫中間件的結(jié)構(gòu)示意圖;
[0033] 圖3是本發(fā)明實施例中數(shù)據(jù)庫中間件的又一種結(jié)構(gòu)示意圖;
[0034]圖4是本發(fā)明實施例中數(shù)據(jù)庫中間件檢索模塊的結(jié)構(gòu)示意圖;
[0035] 圖5是本發(fā)明優(yōu)選實施例中數(shù)據(jù)庫中間件接收來自客戶端的訪問請求時設(shè)計的 架構(gòu)示意圖;
[0036] 圖6是本發(fā)明優(yōu)選實施例中數(shù)據(jù)庫中間件接收來自服務(wù)端的訪問請求時設(shè)計的 架構(gòu)示意。
【具體實施方式】
[0037] 為了解決現(xiàn)有技術(shù)的架構(gòu)下,開發(fā)人員得到數(shù)據(jù)信息的過程較為繁瑣復(fù)雜,極大 的浪費開發(fā)人員的時間和精力的問題,本發(fā)明提供了一種通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方 法和數(shù)據(jù)庫中間件,以下結(jié)合附圖以及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解, 此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不限定本發(fā)明。
[0038] 本發(fā)明實施例提供了一種通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法,該方法的流程如圖 1所示,包括步驟S102至步驟S104 :
[0039] S102,數(shù)據(jù)庫中間件接收訪問請求,訪問請求攜帶有檢索條件;
[0040] S104,數(shù)據(jù)庫中間件根據(jù)檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合檢索條件 的數(shù)據(jù)信息。
[0041] 本發(fā)明實施例通過數(shù)據(jù)庫中間件接收訪問請求,利用數(shù)據(jù)庫中間件按照訪問請求 中的檢索條件進行檢索,通過該方法得到數(shù)據(jù)信息,其通過數(shù)據(jù)庫中間件處理原來需要開 發(fā)人員完成的工作,處理時間和處理速度都有較大提升,解決了現(xiàn)有技術(shù)的架構(gòu)下,開發(fā)人 員得到數(shù)據(jù)信息的過程較為繁瑣復(fù)雜,極大的浪費開發(fā)人員的時間和精力的問題。
[0042] 在數(shù)據(jù)庫中間件接收訪問請求之前,還需要加載預(yù)設(shè)的配置文件,加載的過程包 括建立虛擬節(jié)點和確定配置規(guī)則。實施時,可以對集群進行分層級建立虛擬節(jié)點,但虛擬節(jié) 點過多,會導(dǎo)致調(diào)用時間過長,虛擬節(jié)點過少,會導(dǎo)致調(diào)用過程中出現(xiàn)故障時無法恢復(fù),因 此, 申請人:選擇一種較優(yōu)的層級數(shù)來建立虛擬節(jié)點,即選擇二級層級。實施過程中,建立二 級層級的虛擬節(jié)點,二級層級的虛擬節(jié)點用于控制讀寫分離和調(diào)用數(shù)據(jù)時長,其中,第一層 級虛擬節(jié)點包括:第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,第二層級虛擬節(jié)點包括:與數(shù)據(jù)庫的 對應(yīng)關(guān)系表;再獲取路由的配置規(guī)則,其中,預(yù)設(shè)的配置文件可以存儲在配置中心中,該配 置中心可以設(shè)置在數(shù)據(jù)庫中間件中,也可以設(shè)置在數(shù)據(jù)庫中間件外部,作為一個獨立的存 儲設(shè)備。當(dāng)然,本領(lǐng)域技術(shù)人員根據(jù)需求,還可以設(shè)置三級層級或四級層級等,都是與本發(fā) 明實施例處于等同的保護范圍。
[0043] 在加載預(yù)設(shè)的配置文件之后,還可以將多個應(yīng)用組件進行封裝,例如對DAL框架 和數(shù)據(jù)訪問對象框架(Data Access Object,簡稱為DA0)等進行封裝,并通過預(yù)定訪問接口 進行數(shù)據(jù)庫的訪問操作。上述封裝操作能夠使得使用過程簡化,封裝后,通過預(yù)定接口訪 問數(shù)據(jù)庫的操作時長會大大縮短,其中,預(yù)定訪問接口可以是數(shù)據(jù)庫連接(Java Data Base Connectivity, java,JDBC)或 ODBC 等。
[0044] 具體實施過程中,數(shù)據(jù)庫中間件處理的訪問請求可能來自客戶端,也可能來自服 務(wù)端,來自客戶端和來自服務(wù)端的訪問請求的執(zhí)行過程大體相似,只是當(dāng)訪問請求來自服 務(wù)端時,需要多一些處理步驟。下面先對訪問請求來自客戶端的情況下進行說明,再基于該 流程對來自服務(wù)端的情況進行說明。
[0045] 當(dāng)訪問請求為來自客戶端的訪問請求時,數(shù)據(jù)庫中間件根據(jù)檢索條件對多個數(shù)據(jù) 庫進行檢索,以找到符合檢索條件的數(shù)據(jù)信息可以包括如下過程:首先,解析訪問請求中檢 索條件對應(yīng)的sql語句,并對解析后的sql語句進行分析,以確定需要路由的第一層級虛擬 節(jié)點的配置參數(shù);再將配置參數(shù)發(fā)送至路由器進行路由,由路由器調(diào)用配置參數(shù)對應(yīng)的配 置規(guī)則;再根據(jù)配置規(guī)則對確定的第一層級虛擬節(jié)點執(zhí)行路由過程,以得到符合訪問請求 的數(shù)據(jù)信息。
[0046] 在對解析后的sql語句進行分析,以確定需要路由的第一層級虛擬節(jié)點的配置參 數(shù)之后,還可以對得到的配置參數(shù)進行安全性驗證,即對分析得到的配置參數(shù)進行安全檢 測;在配置參數(shù)安全的情況下,再將配置參數(shù)發(fā)送至路由器。
[0047] 實施時,由路由器調(diào)用配置參數(shù)對應(yīng)的配置規(guī)則可以包括如下兩種形式:
[0048] (1)路由器將包括配置參數(shù)的調(diào)用指令發(fā)送至存儲配置規(guī)則的設(shè)備,存儲配置規(guī) 則的設(shè)備根據(jù)配置參數(shù)確定路由時需要的配置規(guī)則,并將配置規(guī)則發(fā)送至路由器;(2)路 由器通過預(yù)設(shè)策略確定路由時需要的配置規(guī)則,從存儲配置規(guī)則的設(shè)備中獲取需要的配置 規(guī)則。其中,預(yù)設(shè)策略可以是路由器自身配置的策略表,也可以是觸發(fā)具有類似功能的部分 來實現(xiàn)的,例如調(diào)用分庫分表Functions來實現(xiàn)。
[0049] 隨后按照配置規(guī)則查找對應(yīng)的第一層級虛擬節(jié)點;在找到的第一層級虛擬節(jié)點上 查找第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,以確定下一級的第二層級虛擬節(jié)點;查找確定的第 二層級虛擬節(jié)點對應(yīng)的數(shù)據(jù)庫,并在數(shù)據(jù)庫中執(zhí)行sql語句,以得到符合訪問請求的數(shù)據(jù) 信息。其中,在數(shù)據(jù)庫中執(zhí)行sql語句之前和之后,還可以分別對當(dāng)前時刻的數(shù)據(jù)信息進行 采樣,以記錄當(dāng)前時刻的數(shù)據(jù)信息。
[0050] 如果第一層級虛擬節(jié)點或第二層級虛擬節(jié)點在執(zhí)行時出現(xiàn)了故障,可以按照預(yù)設(shè) 負(fù)載均衡(LoadBalance)策略和/或預(yù)設(shè)HA策略執(zhí)行sql語句,例如,當(dāng)前的第二層級虛 擬節(jié)點掛掉了,則可以通過預(yù)設(shè)HA策略進行處理,以選擇其他虛擬節(jié)點執(zhí)行sql語句。
[0051] 在數(shù)據(jù)庫中間件根據(jù)檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合檢索條件的數(shù) 據(jù)信息之后,為了給用戶呈現(xiàn)一個清晰、完整的數(shù)據(jù)信息,可以將數(shù)據(jù)信息進行集合,再將 集合后的數(shù)據(jù)信息進行輸出。
[0052] 上述過程講述的是訪問請求來自客戶端的情況,當(dāng)訪問請求來自服務(wù)端時,其處 理流程基本相同,只是由于客戶端和服務(wù)端計算機語言不同,因此,在數(shù)據(jù)庫中間件根據(jù)檢 索條件對多個數(shù)據(jù)庫進行檢索之前,還需要將從客戶端獲取的鏈接處理層Golang語句進 行輸入輸出(Input Output,簡稱為10)處理;對10處理后的鏈接處理層Golang語句進行 封裝,并將封裝后的Golang語句解析成sql語句;再按照訪問請求為來自客戶端的訪問請 求時的情況,執(zhí)行數(shù)據(jù)庫中間件根據(jù)檢索條件對多個數(shù)據(jù)庫進行檢索的過程。
[0053] 本發(fā)明實施例還提供了一種數(shù)據(jù)庫中間件,該中間件的的結(jié)構(gòu)示意如圖2所示, 包括:接收模塊10,用于接收訪問請求,訪問請求攜帶有檢索條件;檢索模塊20,與接收模 塊10耦合,用于根據(jù)檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合檢索條件的數(shù)據(jù)信息。
[0054] 圖3示出了上述數(shù)據(jù)庫中間件的又一種結(jié)構(gòu)示意圖,上述數(shù)據(jù)庫中間件還包括: 加載模塊30,用于加載預(yù)設(shè)的配置文件,其中,加載過程包括:建立二級層級的虛擬節(jié)點, 二級層級的虛擬節(jié)點用于控制讀寫分離和調(diào)用數(shù)據(jù)時長,其中,第一層級虛擬節(jié)點包括:第 二層級虛擬節(jié)點的對應(yīng)關(guān)系表,第二層級虛擬節(jié)點包括:與數(shù)據(jù)庫的對應(yīng)關(guān)系表;獲取路 由的配置規(guī)則;封裝模塊40,與接收模塊10耦合,用于將多個應(yīng)用組件進行封裝,并通過預(yù) 定訪問接口進行數(shù)據(jù)庫的訪問操作。
[0055] 上述數(shù)據(jù)庫中間件還可以包括:集合模塊,與檢索模塊20耦合,用于將數(shù)據(jù)信息 進行集合,并將集合后的數(shù)據(jù)信息進行輸出。
[0056] 實施過程中,檢索模塊20的結(jié)構(gòu)示意如圖4所示,包括:解析分析單元201,用于 解析訪問請求中檢索條件對應(yīng)的sql語句,并對解析后的sql語句進行分析,以確定需要路 由的第一層級虛擬節(jié)點的配置參數(shù);路由單元202,路由單元,用于接收配置參數(shù),并調(diào)用 配置參數(shù)對應(yīng)的配置規(guī)則,以根據(jù)配置規(guī)則對確定的第一層級虛擬節(jié)點執(zhí)行路由過程,得 到符合訪問請求的數(shù)據(jù)信息。
[0057] 其中,路由單元202,還用于將包括配置參數(shù)的調(diào)用指令發(fā)送至存儲配置規(guī)則的 設(shè)備,以使得存儲配置規(guī)則的設(shè)備根據(jù)配置參數(shù)確定路由時需要的配置規(guī)則;或者,用于通 過預(yù)設(shè)策略確定路由時需要的配置規(guī)則,從存儲配置規(guī)則的設(shè)備中獲取所述需要的配置規(guī) 則。
[0058] 路由單元202,還用于按照配置規(guī)則查找對應(yīng)的第一層級虛擬節(jié)點;在找到的第 一層級虛擬節(jié)點上查找第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,以確定下一級的第二層級虛擬節(jié) 點;查找確定的第二層級虛擬節(jié)點對應(yīng)的數(shù)據(jù)庫,并在數(shù)據(jù)庫中執(zhí)行sql語句,以得到符合 訪問請求的數(shù)據(jù)信息。
[0059] 檢索模塊20,還可以包括安全檢查單元203,與路由單元202耦合,用于對分析得 到的配置參數(shù)進行安全檢測;在配置參數(shù)安全的情況下,將配置參數(shù)發(fā)送至路由單元。
[0060] 上述的數(shù)據(jù)庫中間件的檢索模塊還可以包括:策略執(zhí)行單元,用于在第一層級虛 擬節(jié)點和/或第二層級虛擬節(jié)點出現(xiàn)故障的情況下,按照預(yù)設(shè)負(fù)載均衡策略和/或預(yù)設(shè)高 可用處理策略執(zhí)行sql語句。采樣單元,用于在數(shù)據(jù)庫中執(zhí)行sql語句之前和之后,分別對 當(dāng)前時刻的數(shù)據(jù)信息進行采樣,以記錄當(dāng)前時刻的數(shù)據(jù)信息。
[0061] 在一個優(yōu)選實施例中,上述數(shù)據(jù)庫中間件還可以包括:語言處理模塊,與接收模塊 10和檢索模塊20耦合,用于當(dāng)訪問請求為來自服務(wù)端的訪問請求時,將從客戶端獲取的鏈 接處理層Golang語句進行10處理;對10處理后的鏈接處理層Golang語句進行封裝,并將 封裝后的Golang語句解析成sql語句。然后再按照訪問請求為來自客戶端的訪問請求時 的情況,觸發(fā)檢索模塊執(zhí)行數(shù)據(jù)庫中間件根據(jù)檢索條件對多個數(shù)據(jù)庫進行檢索。
[0062] 優(yōu)選實施例
[0063] 本發(fā)明實施例開發(fā)數(shù)據(jù)庫中間件的目的是為了解決以下問題:1.屏蔽數(shù)據(jù)庫訪 問細節(jié),對應(yīng)用透明,簡化應(yīng)用開發(fā)人員的工作;2.增加應(yīng)用和數(shù)據(jù)庫訪問的監(jiān)控,提高系 統(tǒng)安全能力;3.解決跨語言訪問問題,能夠?qū)?shù)據(jù)庫切分實現(xiàn)跨語言調(diào)用;4.增加系統(tǒng)健 壯性和可維護性,添加管理模塊,大大降低日常工作的維護成本;5.提高整體架構(gòu)的合理 性。
[0064] 為了解決上述技術(shù)問題,本發(fā)明實施例提出了采用混合的解決方式,即采用客戶 端的方式封裝分布式數(shù)據(jù)庫的邏輯;通過服務(wù)端代理的邏輯對分庫分表進行封裝;對于應(yīng) 用服務(wù)的接入,可以采取多種方式,不同的業(yè)務(wù)可以使用不同的場景進行接入,方案的設(shè)計 引入NameNode (第一層級虛擬節(jié)點)和datanode (第二層級虛擬節(jié)點)的概念,Namenode 是一個datanode的集合,是一個抽象的數(shù)據(jù)邏輯節(jié)點,datanode對應(yīng)實際的數(shù)據(jù)資源訪問 抽象,本領(lǐng)域技術(shù)人員可以根據(jù)需求設(shè)計不同的功能功能。下面,分別對基于客戶端和服務(wù) 端的流程進行說明。
[0065] 如圖5所示,是數(shù)據(jù)庫中間件接收來自客戶端的訪問請求時設(shè)計的架構(gòu)示意,在 該圖中,Result相當(dāng)于集合模塊,Exchange相當(dāng)于檢索模塊,檢索模塊內(nèi)部的各個功能單 元相當(dāng)于Exchange內(nèi)部的各個功能單元,本領(lǐng)域技術(shù)人員根據(jù)圖5可以知曉,實施例的 Exchange可以根據(jù)實際需求和程序需要,增加一些功能,此處不再贅述。圖中的Clusters 相當(dāng)于建立模塊建立得到的虛擬節(jié)點,加載模塊和封裝模塊等流程執(zhí)行功能可以通過預(yù)先 處理和實時調(diào)用程序?qū)崿F(xiàn),此處在圖中并未示出。
[0066] 下面將對圖5的客戶端的流程方式進行說明。
[0067] (1)加載配置文件。該配置文件包括多種配置規(guī)則,其中包括對配置規(guī)則可以預(yù)存 在配置中心等文件、數(shù)據(jù)庫中,具體加載時可以由配置中心加載。
[0068] 配置文件包括在命名節(jié)點(Namenode)里面配置負(fù)載均衡策略、配置數(shù)據(jù)節(jié)點 (Datanode)、配置Datanode的讀寫權(quán)限以及權(quán)重、負(fù)載均衡(LoadBalance)策略與HA策略 (該策略就是為了在其中一個Datanode掛掉時,不影響使用,服務(wù)還正常),其中參數(shù)包括 表名、條件參數(shù)等。
[0069] (2)通過jdbc訪問接口進行數(shù)據(jù)庫操作。
[0070] 在數(shù)據(jù)庫接口(Database Interface)配置之后,在數(shù)據(jù)庫代理(Database Proxy) 中進行JDBC3封裝。
[0071] (3)解析sql語句(利用Sqlparser解析器),即解析客戶端的訪問請求。
[0072] (4)分析sql語句的配置參數(shù)(利用Shard Analyzer分析器等)。
[0073] (5)Router調(diào)用分庫分表functions,以獲取配置規(guī)則。
[0074] 上述過程即對客戶端的訪問請求分析,分析查詢條件(參數(shù)、字段、表名、 schema),根據(jù)查詢條件選擇相對應(yīng)的配置規(guī)則。Router確定查詢路徑,Executor負(fù)責(zé)執(zhí) 行。
[0075] 例如,sql 語句 select*from t_user where id = 123456and username = ' 小華'。
[0076] 解析結(jié)果:1.數(shù)據(jù)庫表名t_uSer ;2.依據(jù)數(shù)據(jù)庫表名在配置規(guī)則的解析表中查找 對應(yīng)的字段,讀取t_user的所有字段名;3. where條件參數(shù):id= 123456,username = '小 華,。
[0077] 分析結(jié)果:根據(jù)id分析,以id作為參考字段,按1000取模來說,id = 123456可得 到下標(biāo)456 ;然后路由到456這個Namenode ;定位到Namenode之后,Namenode下面有若干 個Datanode,可以采用不同的算法取遍歷,選取Datanode,比如隨機、輪詢,找到Datanode 之后,就持有一個 Datasource,Datanode 持有一個 Provider,一個 Provider 持有一個 Datasource,執(zhí)行過程即 Datanode 至 Provider 至 Datasource,其中 Provider 可以有多個 Datasource,即依次遍歷調(diào)用多個Datasource,順序例如隨機,或者輪詢順序。
[0078] (6)對配置規(guī)則路由到相應(yīng)的Namenode命名節(jié)點(Router路由器)。
[0079] Namenode可以為一個抽象的節(jié)點,Datanode可以掛接數(shù)據(jù)訪問,與Datasource綁 定。一組Datanode至少對應(yīng)一個Datasource,比如一組包含主從的Datanode至少對應(yīng)一個 Datasource,而一個 Namenode 可以對應(yīng)多個 Datanode,一個 Damenode 對應(yīng)多個 Datanode。
[0080] 其中,Datasource是其通用含義,即是提供某種所需要數(shù)據(jù)的器件或原始媒體,即 數(shù)據(jù)的來源。在數(shù)據(jù)源中存儲了所有建立數(shù)據(jù)庫連接的信息,就像通過指定文件名稱可以 在文件系統(tǒng)中找到文件一樣,通過提供正確的數(shù)據(jù)源名稱,可以找到相應(yīng)的數(shù)據(jù)庫連接。
[0081] (7)執(zhí)行前調(diào)用攔截器(可以接入監(jiān)控組件interc印tor攔截器)。
[0082] 該步驟為執(zhí)行前的操作,譬如修改參數(shù)修改,緩存同步,數(shù)據(jù)庫同步,監(jiān)控等。其 中,用戶可以控制修改,sql參數(shù)可以修改,context上下文也可以修改;緩存同步就是將數(shù) 據(jù)更新到緩存,例如sql中的參數(shù)數(shù)據(jù)等。
[0083] (8)執(zhí)行路由結(jié)果的sql (executor執(zhí)行器執(zhí)行)。
[0084] Router確定調(diào)用線路,執(zhí)行器(executor)執(zhí)行調(diào)用。路由之后可以選擇性的進行 統(tǒng)計分析(statistics),
[0085] (9)進行負(fù)載均衡(Loadbalance)和 HA。
[0086] 本步驟為可選過程:如預(yù)先配置Loadbalance以及HA,則將在executor執(zhí)行調(diào)取 后根據(jù)情況確定是否需要執(zhí)行Loadbalance以及HA。
[0087] 例如,隨機選取一個Datanode、或者一個Datanode失敗了,就會執(zhí)行HA,切換到另 外一個Datanode,其中失敗的情況可以包括數(shù)據(jù)庫訪問不通、鏈接斷掉了、網(wǎng)絡(luò)有問題等。 采用HA的方案執(zhí)行,選取該Namenode下面其他的Datanode,具體選取哪個就是根據(jù)之前的 選取算法,根據(jù)隨機或者輪詢遍歷等方式選取對DataNode選取進行HA操作,
[0088] (10)執(zhí)行后調(diào)用攔截器。
[0089] 該步驟為執(zhí)行后的操作,例如修改參數(shù)、緩存同步、數(shù)據(jù)庫同步、監(jiān)控等,與執(zhí)行前 調(diào)用攔截器相似,只是處理內(nèi)容的先后問題。攔截器可以選擇Plugin插件,該插件可以包 括 statistics 與安全檢查(Security checker)等。
[0090] (11)合并執(zhí)行結(jié)果(利用mergers結(jié)果合并器)。
[0091] 在圖5中,預(yù)設(shè)的配置文件存儲于配置中心內(nèi);將配置文件進行加載得到配置規(guī) 貝1J,由配置模塊(圖中示為configurations)調(diào)取配置規(guī)則,提供給router,由功能模塊(圖 中示為分庫分表function)為配置參數(shù)找到相對應(yīng)的配置規(guī)則;由路由根據(jù)配置規(guī)則找到 Namenode, Namenode確定Datanode,在多個數(shù)據(jù)庫中進行查詢產(chǎn)生多個結(jié)果集,對多個結(jié) 果集進行合并。
[0092] 圖6是數(shù)據(jù)庫中間件接收來自服務(wù)端的訪問請求時設(shè)計的架構(gòu)示意,服務(wù)端與客 戶端的執(zhí)行過程相似,因此,圖6僅示出了服務(wù)端的大體架構(gòu)。下面結(jié)合圖6對服務(wù)端的流 程方式進行說明。
[0093] (1)啟動服務(wù)端組件,監(jiān)聽端口。
[0094] (2)加載配置文件(該過程可以在配置中心加載)。與客戶端的加載過程相同。
[0095] (3)封裝mysql。封裝后的mysql處理時更加簡單
[0096] (4)解析客戶端訪問二進制協(xié)議。該過程為計算機語言的翻譯過程,相當(dāng)于將服務(wù) 端的計算機語言解析成為sql語句。
[0097] 在上述過程解析后得到了中間件能夠讀取的sql語句,然后再按照客戶端的方式 執(zhí)行具體流程,即執(zhí)行(5)-(12)。
[0098] (5)解析 sql 語句(利用 sqlparser)。
[0099] (6)分析sql語句的配置參數(shù)(利用analyzer)。
[0100] (7)將配置規(guī)則路由到相應(yīng)的Namenode (通過router)。
[0101] (8)執(zhí)行前調(diào)用攔截器(可以接入監(jiān)控組件interc印tor)。
[0102] (9)執(zhí)行路由結(jié)果的sql (通過executor)。
[0103] (10)根據(jù)情況執(zhí)行 LoadBalance、HA。
[0104] (11)執(zhí)行后調(diào)用攔截器(interceptor)。
[0105] (12)合并執(zhí)行結(jié)果(通過merger)。
[0106] 通過運用本實施例,將數(shù)據(jù)庫分布式訪問方式從業(yè)務(wù)代碼中抽象出來,簡化開發(fā), 使得業(yè)務(wù)代碼更加清晰,提升生產(chǎn)效率。對公司運維、DBA、開發(fā)、產(chǎn)品等業(yè)務(wù)人員有巨大的 幫助,能夠提升生產(chǎn)效率;能夠結(jié)合公司的實際情況,針對現(xiàn)有系統(tǒng)進行優(yōu)化,提供更安全、 效率更高、安全更好、邏輯性更加清晰合理的架構(gòu)。
[0107] 盡管為示例目的,已經(jīng)公開了本發(fā)明的優(yōu)選實施例,本領(lǐng)域的技術(shù)人員將意識到 各種改進、增加和取代也是可能的,因此,本發(fā)明的范圍應(yīng)當(dāng)不限于上述實施例。
【權(quán)利要求】
1. 一種通過數(shù)據(jù)庫中間件查詢數(shù)據(jù)的方法,其特征在于,包括: 數(shù)據(jù)庫中間件接收訪問請求,所述訪問請求攜帶有檢索條件; 所述數(shù)據(jù)庫中間件根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合所述檢索條 件的數(shù)據(jù)信息。
2. 如權(quán)利要求1所述的方法,其特征在于,數(shù)據(jù)庫中間件接收訪問請求之前,還包括: 加載預(yù)設(shè)的配置文件,其中,加載過程包括: 建立二級層級的虛擬節(jié)點,所述二級層級的虛擬節(jié)點用于控制讀寫分離和調(diào)用數(shù)據(jù)時 長,其中,第一層級虛擬節(jié)點包括:第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,第二層級虛擬節(jié)點包 括:與數(shù)據(jù)庫的對應(yīng)關(guān)系表; 獲取路由的配置規(guī)則。
3. 如權(quán)利要求2所述的方法,其特征在于,加載預(yù)設(shè)的配置文件之后,還包括: 將多個應(yīng)用組件進行封裝,并通過預(yù)定訪問接口進行數(shù)據(jù)庫的訪問操作。
4. 如權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)庫中間件根據(jù)所述檢索條件對多 個數(shù)據(jù)庫進行檢索,以找到符合所述檢索條件的數(shù)據(jù)信息之后,還包括: 將所述數(shù)據(jù)信息進行集合,并將集合后的數(shù)據(jù)信息進行輸出。
5. 如權(quán)利要求1至4中任一項所述的方法,其特征在于,當(dāng)所述訪問請求為來自客戶端 的訪問請求時,所述數(shù)據(jù)庫中間件根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合 所述檢索條件的數(shù)據(jù)信息包括: 解析所述訪問請求中檢索條件對應(yīng)的sql語句,并對解析后的sql語句進行分析,以確 定需要路由的第一層級虛擬節(jié)點的配置參數(shù); 將所述配置參數(shù)發(fā)送至路由器,由路由器調(diào)用所述配置參數(shù)對應(yīng)的配置規(guī)則; 根據(jù)所述配置規(guī)則對確定的第一層級虛擬節(jié)點執(zhí)行路由過程,以得到符合所述訪問請 求的數(shù)據(jù)信息。
6. 如權(quán)利要求5所述的方法,其特征在于,由路由器調(diào)用所述配置參數(shù)對應(yīng)的配置規(guī) 則包括: 路由器將包括配置參數(shù)的調(diào)用指令發(fā)送至存儲配置規(guī)則的設(shè)備,存儲配置規(guī)則的設(shè)備 根據(jù)所述配置參數(shù)確定路由時需要的配置規(guī)則,并將所述配置規(guī)則發(fā)送至所述路由器;或 者, 路由器通過預(yù)設(shè)策略確定路由時需要的配置規(guī)則,從存儲配置規(guī)則的設(shè)備中獲取所述 需要的配置規(guī)則。
7. 如權(quán)利要求5所述的方法,其特征在于,根據(jù)所述配置規(guī)則對確定的第一層級虛擬 節(jié)點執(zhí)行路由過程,以得到符合所述訪問請求的數(shù)據(jù)信息包括: 按照所述配置規(guī)則查找對應(yīng)的第一層級虛擬節(jié)點; 在找到的第一層級虛擬節(jié)點上查找第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,以確定下一級的 第二層級虛擬節(jié)點; 查找確定的第二層級虛擬節(jié)點對應(yīng)的數(shù)據(jù)庫,并在所述數(shù)據(jù)庫中執(zhí)行sql語句,以得 到符合所述訪問請求的數(shù)據(jù)信息。
8. 如權(quán)利要求5所述的方法,其特征在于,對解析后的sql語句進行分析,以確定需要 路由的第一層級虛擬節(jié)點的配置參數(shù)之后,還包括: 對分析得到的配置參數(shù)進行安全檢測; 在所述配置參數(shù)安全的情況下,將所述配置參數(shù)發(fā)送至路由器。
9. 如權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 在第一層級虛擬節(jié)點和/或第二層級虛擬節(jié)點出現(xiàn)故障的情況下,按照預(yù)設(shè)負(fù)載均衡 策略和/或預(yù)設(shè)高可用處理策略執(zhí)行sql語句。
10. 如權(quán)利要求7所述的方法,其特征在于,所述方法還包括: 在所述數(shù)據(jù)庫中執(zhí)行sql語句之前和之后,分別對當(dāng)前時刻的數(shù)據(jù)信息進行采樣,以 記錄當(dāng)前時刻的數(shù)據(jù)信息。
11. 如權(quán)利要求5所述的方法,其特征在于,所述數(shù)據(jù)庫中間件根據(jù)所述檢索條件對多 個數(shù)據(jù)庫進行檢索之前,還包括: 當(dāng)所述訪問請求為來自服務(wù)端的訪問請求時,將從客戶端獲取的鏈接處理層Golang 語句進行10處理; 對10處理后的所述鏈接處理層Golang語句進行封裝,并將封裝后的Golang語句解析 成sql語句; 再按照所述訪問請求為來自客戶端的訪問請求時的情況,執(zhí)行所述數(shù)據(jù)庫中間件根據(jù) 所述檢索條件對多個數(shù)據(jù)庫進行檢索。
12. -種數(shù)據(jù)庫中間件,其特征在于,包括: 接收模塊,用于接收訪問請求,所述訪問請求攜帶有檢索條件; 檢索模塊,用于根據(jù)所述檢索條件對多個數(shù)據(jù)庫進行檢索,以找到符合所述檢索條件 的數(shù)據(jù)信息。
13. 如權(quán)利要求12所述的數(shù)據(jù)庫中間件,其特征在于,還包括: 加載模塊,用于加載預(yù)設(shè)的配置文件,其中,加載過程包括:建立二級層級的虛擬節(jié)點, 所述二級層級的虛擬節(jié)點用于控制讀寫分離和調(diào)用數(shù)據(jù)時長,其中,第一層級虛擬節(jié)點包 括:第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,第二層級虛擬節(jié)點包括:與數(shù)據(jù)庫的對應(yīng)關(guān)系表;獲 取路由的配置規(guī)則; 封裝模塊,用于將多個應(yīng)用組件進行封裝,并通過預(yù)定訪問接口進行數(shù)據(jù)庫的訪問操 作。
14. 如權(quán)利要求12所述的數(shù)據(jù)庫中間件,其特征在于,還包括: 集合模塊,用于將所述數(shù)據(jù)信息進行集合,并將集合后的數(shù)據(jù)信息進行輸出。
15. 如權(quán)利要求12至14中任一項所述的數(shù)據(jù)庫中間件,其特征在于,當(dāng)所述訪問請求 為來自客戶端的訪問請求時,所述檢索模塊包括: 解析分析單元,用于解析所述訪問請求中檢索條件對應(yīng)的sql語句,并對解析后的sql 語句進行分析,以確定需要路由的第一層級虛擬節(jié)點的配置參數(shù); 路由單元,用于接收所述配置參數(shù),并調(diào)用所述配置參數(shù)對應(yīng)的配置規(guī)則,以根據(jù)所述 配置規(guī)則對確定的第一層級虛擬節(jié)點執(zhí)行路由過程,得到符合所述訪問請求的數(shù)據(jù)信息。
16. 如權(quán)利要求15所述的數(shù)據(jù)庫中間件,其特征在于, 所述路由單元,還用于將包括配置參數(shù)的調(diào)用指令發(fā)送至存儲配置規(guī)則的設(shè)備,以使 得存儲配置規(guī)則的設(shè)備根據(jù)所述配置參數(shù)確定路由時需要的配置規(guī)則;或者,用于通過預(yù) 設(shè)策略確定路由時需要的配置規(guī)則,從存儲配置規(guī)則的設(shè)備中獲取所述需要的配置規(guī)則。
17. 如權(quán)利要求15所述的數(shù)據(jù)庫中間件,其特征在于, 所述路由單元,還用于按照所述配置規(guī)則查找對應(yīng)的第一層級虛擬節(jié)點;在找到的第 一層級虛擬節(jié)點上查找第二層級虛擬節(jié)點的對應(yīng)關(guān)系表,以確定下一級的第二層級虛擬節(jié) 點;查找確定的第二層級虛擬節(jié)點對應(yīng)的數(shù)據(jù)庫,并在所述數(shù)據(jù)庫中執(zhí)行sql語句,以得到 符合所述訪問請求的數(shù)據(jù)信息。
18. 如權(quán)利要求15所述的數(shù)據(jù)庫中間件,其特征在于,還包括: 安全檢查單元,用于對分析得到的配置參數(shù)進行安全檢測;在所述配置參數(shù)安全的情 況下,將所述配置參數(shù)發(fā)送至路由單元。
【文檔編號】G06F17/30GK104063425SQ201410245914
【公開日】2014年9月24日 申請日期:2014年6月4日 優(yōu)先權(quán)日:2014年6月4日
【發(fā)明者】羅立樹, 范文斌, 陳陽 申請人:五八同城信息技術(shù)有限公司