[發明專利]一種數據庫代理方法和裝置有效
| 申請號: | 201210390622.0 | 申請日: | 2012-10-15 |
| 公開(公告)號: | CN103729373B | 公開(公告)日: | 2017-08-04 |
| 發明(設計)人: | 魏智強 | 申請(專利權)人: | 北京新媒傳信科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京市隆安律師事務所11323 | 代理人: | 權鮮枝,董垚 |
| 地址: | 100089 北京市海淀區萬*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 代理 方法 裝置 | ||
技術領域
本發明涉及數據庫技術領域,特別涉及一種數據庫代理方法和裝置。
背景技術
數據庫代理是處于底層數據庫和用戶應用系統之間的,主要用于屏蔽異構數據庫的底層細節問題的中間件,是應用服務器與后臺的數據庫之間進行通訊的橋梁。應用服務器需要對某個數據庫執行操作請求,例如SQL請求時,通過數據庫中間件搜索匹配的數據庫連接,并將SQL請求轉發給對應的數據庫,通過數據庫中間件對數據庫進行操作。其主要作用是封裝復雜繁瑣的數據庫應用接口和數據庫操作過程,簡化應用程序的數據庫操作,提高應用程序開發效率。
但是目前很多數據庫代理軟件沒有做后端數據庫讀寫分離的處理,或者多個數據庫使用同一個連接池,對于數據庫操作頻繁、數據量大的請求,增加了數據庫壓力,數據庫響應時間增加,影響系統性能,因此,亟需一種查詢效率高、響應時間短的數據庫代理方法和裝置。
發明內容
本發明提供一種數據庫代理方法和裝置,以達到查詢效率高、響應時間短的效果。為達到上述目的,本發明采用如下技術方案:
本發明公開了一種數據庫代理方法,包括:
為多個數據庫中的每個數據庫建立連接池;
接收數據庫應用端發送的請求;
按接收的請求,調取連接池中的數據庫連接進行數據庫操作;
將執行結果返回給數據庫應用端;
其中,所述調取連接池中的數據庫連接進行數據庫操作包括:
解析請求中的信息獲得數據庫操作命令;
根據數據庫操作命令和配置信息確定作為操作對象的數據庫,所述配置信息包含所述多個數據庫的數據庫類型;
從所確定的數據庫所對應的連接池中調取數據庫連接,應用該數據庫連接將數據庫操作命令發送給所確定的數據庫,并從該數據庫接收執行結果。
其中,該方法還包括在接收請求之前建立線程池,線程池中包括至少一個線程;
所述按接收的請求,調取連接池中的數據庫連接進行數據庫操作具體包括:調用線程池中一個空閑的線程,所述線程按接收的請求,調取連接池中的數據庫連接進行數據庫操作;完成數據庫操作后,將該線程的狀態設置為空閑或刪除該線程。
其中,所述數據庫包括用于執行數據庫寫操作的主數據庫和用于執行數據庫讀操作的從數據庫;
所述根據數據庫操作命令和配置信息確定作為操作對象的數據庫具體包括:
判斷數據庫操作命令是否為執行讀的操作,若判斷為是,則確定數據庫類型為從數據庫,若判斷為否,則確定數據庫類型為主數據庫;進而根據配置信息包含的數據庫類型,確定作為操作對象的數據庫。
其中,當通過數據庫連接與數據庫通信出現故障時,將所述數據庫連接所屬的連接池中的數據庫連接的狀態設置為異常,并定時從該連接池調取一個數據庫連接來與數據庫重新建立連接,直到正常連接后將所述連接池中的數據庫連接的狀態設置為正常。
其中,從該數據庫接收執行結果完成后,將所調取的數據庫連接的狀態設置為空閑或刪除該數據庫連接。
所述為多個數據庫中的每個數據庫建立連接池具體包括:為每個數據庫,創建預設數目的數據庫連接;
所述從所確定的數據庫所對應的連接池中調取數據庫連接具體包括:判斷所確定的數據庫所對應的連接池中是否有空閑的數據庫連接,若判斷為是,則直接從連接池中調取空閑的數據庫連接,若判斷為否,則進一步判斷數據庫連接的數目是否達到了預設的最大值,若判斷為是,則延遲一段預設時間后判斷連接池中是否有空閑的數據庫連接,若判斷為否,則創建新的數據庫連接。
本發明還公開了一種數據庫代理的裝置,該裝置與多個數據庫連接,并包括連接配置單元、交互單元和操作單元:
連接配置單元,用于為多個數據庫中的每個數據庫建立連接池;
交互單元,用于接收數據庫應用端發送的請求,將執行結果返回給數據庫應用端;
操作單元,用于從交互單元接收請求、按接收的請求,調取連接池中的數據庫連接進行數據庫操作,包括:
解析模塊,用于解析請求中的信息獲得數據庫操作命令,并將數據庫操作命令發送給選擇模塊和執行模塊;
選擇模塊,用于根據數據庫操作命令和配置信息確定作為操作對象的數據庫,并將確定結果發送給執行模塊,所述配置信息包含所述多個數據庫的數據庫類型;
執行模塊,用于從所確定的數據庫所對應的連接池中調取數據庫連接,應用該數據庫連接將數據庫操作命令發送給所確定的數據庫,并從該數據庫接收執行結果,并將執行結果發送給交互單元。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京新媒傳信科技有限公司,未經北京新媒傳信科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210390622.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種旋挖鉆機用回轉緩沖補油裝置
- 下一篇:復合控制式變量泵





