[發明專利]用于實現數據庫讀寫負載均衡的方法及其系統有效
| 申請號: | 201710234568.3 | 申請日: | 2017-04-11 |
| 公開(公告)號: | CN107066575B | 公開(公告)日: | 2021-01-15 |
| 發明(設計)人: | 楊創;廖小文;詹先;王沛文 | 申請(專利權)人: | 廣東億迅科技有限公司 |
| 主分類號: | G06F16/2453 | 分類號: | G06F16/2453;G06F16/2455;G06F16/21 |
| 代理公司: | 深圳市精英專利事務所 44242 | 代理人: | 馮筠 |
| 地址: | 510000 廣東省廣州*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 實現 數據庫 讀寫 負載 均衡 方法 及其 系統 | ||
1.用于實現數據庫讀寫負載均衡的方法,其特征在于,所述方法包括:
獲取MySQL報文;
對所述MySQL報文進行解析,獲取具體的SQL語句;
判斷SQL語句是否攜帶HINT信息;
若SQL語句攜帶HINT信息,則對SQL語句的平衡值進行判斷,獲取SQL語句的讀寫屬性;
當讀寫屬性為讀時,根據從節點的權重讀取數據,當讀寫屬性為寫時,向寫節點寫入數據;
若SQL語句不攜帶HINT信息,則解析SQL邏輯,根據解析的結果獲取SQL語句的讀寫屬性,并進入所述當讀寫屬性為讀時,根據從節點的權重讀取數據,當讀寫屬性為寫時,向寫節點寫入數據;
若SQL語句攜帶HINT信息,則對SQL語句的平衡值進行判斷,獲取SQL語句的讀寫屬性的步驟,包括以下具體步驟:
獲取SQL語句內的平衡值;
根據所述平衡值判斷所述SQL語句是否發往數據庫寫節點;
若是發往數據庫寫節點,則SQL語句的屬性為寫屬性;
若不是發往數據庫寫節點,則SQL語句的屬性為讀屬性;
若SQL語句不攜帶HINT信息,則解析SQL邏輯,根據解析的結果獲取SQL語句的讀寫屬性的步驟,包括以下具體步驟:
獲取SQL語句的SQL文本;
解析所述SQL文本,判斷所述SQL文本是否是讀語句;
若是讀語句,則發往數據庫讀節點,SQL語句的讀寫屬性為讀屬性;
若不是讀語句,則發往數據庫寫節點,SQL語句的讀寫屬性為寫屬性;
當讀寫屬性為讀時,根據從節點的權重讀取數據的步驟,包括以下具體步驟:
獲取各從節點的權重比例;
根據所述權重比例,獲取從節點鏈接;
向所述從節點查詢數據,并反饋查詢的結果;
當讀寫屬性為寫時,向寫節點寫入數據的步驟,包括以下具體步驟:
根據會話情況獲取寫節點鏈接;
向所述寫節點寫入數據,并返回結果;
所述方法還包括:
主從節點關系發生變化,由已完成同步的從節點提升為主節點;
通過SQL語句檢測到數據庫狀態的變化后,重新初始化后端的鏈接;
所述方法還包括:
從節點數量發生變化時,通過SQL語句檢測從節點的數量以及從節點的鏈接信息,重新初始化后端從節點的鏈接;
在數據庫代理層上設置讀寫負載策略,默認無事務寫SQL在寫節點執行,讀SQL在讀節點執行;事務內讀寫SQL都在寫節點執行。
2.用于實現數據庫讀寫負載均衡的系統,所述系統適用于權利要求1所述的用于實現數據庫讀寫負載均衡的方法,其特征在于,包括獲取單元、解析獲取單元、判斷單元、HINT處理單元、SQL邏輯解析單元以及讀寫處理單元;
所述獲取單元,用于獲取MySQL報文;
所述解析獲取單元,用于對所述MySQL報文進行解析,獲取具體的SQL語句;
所述判斷單元,用于判斷SQL語句是否攜帶HINT信息;
所述HINT處理單元,用于若SQL語句攜帶HINT信息,則對SQL語句的平衡值進行判斷,獲取SQL語句的讀寫屬性;
所述SQL邏輯解析單元,用于若SQL語句不攜帶HINT信息,則解析SQL邏輯,根據解析的結果獲取SQL語句的讀寫屬性;
所述讀寫處理單元,用于當讀寫屬性為讀時,根據從節點的權重讀取數據,當讀寫屬性為寫時,向寫節點寫入數據;
所述HINT處理單元更包括平衡值獲取模塊以及平衡值判斷模塊;
所述平衡值獲取模塊,用于獲取SQL語句內的平衡值;
所述平衡值判斷模塊,用于根據所述平衡值判斷所述SQL語句是否發往數據庫寫節點;若是發往數據庫寫節點,則SQL語句的屬性為寫屬性;若不是發往數據庫寫節點,則SQL語句的屬性為讀屬性;
所述SQL邏輯解析單元包括文本獲取模塊以及解析文本模塊;
所述文本獲取模塊,用于獲取SQL語句的SQL文本;
所述解析文本模塊,用于解析所述SQL文本,判斷所述SQL文本是否是讀語句;若是讀語句,則發往數據庫讀節點,SQL語句的讀寫屬性為讀屬性;若不是讀語句,則發往數據庫寫節點,SQL語句的讀寫屬性為寫屬性。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東億迅科技有限公司,未經廣東億迅科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710234568.3/1.html,轉載請聲明來源鉆瓜專利網。





