[發明專利]一種基于響應式線程池的數據庫代理實現方法在審
| 申請號: | 202210456708.2 | 申請日: | 2022-04-24 |
| 公開(公告)號: | CN114936244A | 公開(公告)日: | 2022-08-23 |
| 發明(設計)人: | 陳成;陳廷梁 | 申請(專利權)人: | 浙江數新網絡有限公司 |
| 主分類號: | G06F16/25 | 分類號: | G06F16/25;G06F16/21;G06F9/48 |
| 代理公司: | 北京匯信合知識產權代理有限公司 11335 | 代理人: | 盧亮輝 |
| 地址: | 311121 浙江省杭州市余*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 響應 線程 數據庫 代理 實現 方法 | ||
本發明提供一種基于響應式線程池的數據庫代理實現方法,涉及數據庫代理技術領域,包括:代理軟件啟動,獲取需代理的數據庫列表;將數據庫列表中的數據庫添加到代理軟件,得到數據庫派發列表;代理軟件針對數據庫派發列表中每個數據庫分別動態創建一個響應式線程池;代理軟件通過第一響應式線程池多線程接收并解析客戶端的指令,獲取指令內容中對應的數據庫;代理軟件通過該數據庫對應的第二響應式線程池將指令轉發至該數據庫。本發明將數據路由的權利從代理軟件中直接透傳給客戶端應用程序本身,在代理軟件不可用時,應用程序可直接連接數據庫完成服務,實現高性能輕量級的數據代理;借助響應式編程實現在流量低潮進行代理數據庫的熱更新。
技術領域
本發明涉及數據庫代理技術領域,尤其是涉及一種基于響應式線程池的數據庫代理實現方法。
背景技術
企業在進行日常生產經營活動時會開發出一系列的應用程序為用戶提供服務;基本的企業軟件架構是多個服務端程序發起數據庫連接進行數據的增刪改查;隨著企業服務端的業務發展,需要部署的程序逐步變多;數據庫的讀寫壓力變大,常見的數據庫進行擴容或修改部署方案,改為主從模式或者讀寫分離的模式,數據庫修改部署方案后,需要應用軟件側進行大量的修改,以適配新的數據庫部署方案。因此,出現了多種數據庫代理軟件。
現有的代理軟件大多實現了某個特定版本的mysql協議,當mysql的版本不一致時,就無法進行代理了。
另外,現有數據庫代理軟件實現代理的mysql高可用,其本質與數據庫本身的高可用方案存在一定沖突,一旦代理軟件不可用,應用程序就無法進行降級處理,從而引發更多的問題。
發明內容
針對上述問題,本發明提供了一種基于響應式線程池的數據庫代理實現方法,使代理軟件專注于數據代理,將數據路由的權利從代理軟件中直接透傳給應用程序本身,實現高性能輕量級的數據代理,在代理軟件不可用時,應用程序可直接連接數據庫完成服務。
為實現上述目的,本發明提供了一種基于響應式線程池的數據庫代理實現方法,包括:
代理軟件啟動,獲取需代理的數據庫列表;
將所述數據庫列表中的數據庫添加到所述代理軟件,得到數據庫派發列表;
所述代理軟件針對所述數據庫派發列表中每個數據庫分別動態創建一個響應式線程池;
所述代理軟件通過第一響應式線程池多線程接收并解析客戶端的指令,獲取指令內容中對應的數據庫;
所述代理軟件通過該數據庫對應的第二響應式線程池將指令轉發至該數據庫。
作為本發明的進一步改進,所述解析客戶端的指令,包括:
對所述指令進行幀解析,判斷指令語句中是否包括事務的多種操作;
若包括,則拆分事務操作,對每種操作分別則根據指令語句中申明的節點名稱獲取該指令對應的數據庫。
作為本發明的進一步改進,所述代理軟件設有數據庫列表獲取接口,通過所述數據庫列表獲取接口獲取需要代理的數據庫列表,得到JSON格式化的數據庫清單。
作為本發明的進一步改進,所述代理軟件設有數據庫添加接口,通過所述數據庫添加接口,將所述數據庫列表中的各數據庫添加到所述代理軟件;
各數據庫向所述代理軟件傳入參數包括:數據庫的節點名稱、路由和讀寫屬性。
作為本發明的進一步改進,所述第二線程池根據對應數據庫的路由,將指令轉發至對應的數據庫。
作為本發明的進一步改進,所述代理軟件通過數據庫刪除接口刪除已添加的數據庫。
作為本發明的進一步改進,向所述數據庫刪除接口傳入需刪除的數據庫的節點名稱;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江數新網絡有限公司,未經浙江數新網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210456708.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種六自由度并聯機器人
- 下一篇:一種地下實驗室核素遷移試驗的擴散裝置及方法





