[發(fā)明專利]數(shù)據(jù)源讀寫分離方法和裝置在審
| 申請?zhí)枺?/td> | 202011050571.8 | 申請日: | 2020-09-29 |
| 公開(公告)號: | CN113761038A | 公開(公告)日: | 2021-12-07 |
| 發(fā)明(設(shè)計)人: | 趙力 | 申請(專利權(quán))人: | 北京沃東天駿信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司 |
| 主分類號: | G06F16/25 | 分類號: | G06F16/25 |
| 代理公司: | 中原信達(dá)知識產(chǎn)權(quán)代理有限責(zé)任公司 11219 | 代理人: | 李陽;王志遠(yuǎn) |
| 地址: | 100176 北京市北京經(jīng)濟(jì)技術(shù)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 數(shù)據(jù)源 讀寫 分離 方法 裝置 | ||
本發(fā)明公開了一種數(shù)據(jù)源讀寫分離方法和裝置,涉及計算機(jī)技術(shù)領(lǐng)域。該方法的一具體實(shí)施方式包括:獲取業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)源,將所述原始數(shù)據(jù)源作為第一數(shù)據(jù)源,復(fù)制所述第一數(shù)據(jù)源得到第二數(shù)據(jù)源,將所述第一數(shù)據(jù)源和所述第二數(shù)據(jù)源其中之一作為讀數(shù)據(jù)源,另一個作為寫數(shù)據(jù)源;攔截訪問所述業(yè)務(wù)系統(tǒng)的請求,并識別所述請求對應(yīng)的操作類型,所述操作類型包括讀操作和寫操作;在確定所述請求對應(yīng)的操作類型為寫操作時,將請求鏈接到寫數(shù)據(jù)源進(jìn)行寫操作;在確定請求對應(yīng)的操作類型為讀操作時,將請求鏈接到讀數(shù)據(jù)源進(jìn)行讀操作。該實(shí)施方式以非侵入的方式實(shí)現(xiàn)了數(shù)據(jù)源讀寫分離,對業(yè)務(wù)代碼侵入小,支持不同類型的數(shù)據(jù)源切換,降低了開發(fā)成本。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)源讀寫分離方法、裝置、電子設(shè)備和計算機(jī)可讀介質(zhì)。
背景技術(shù)
目前,為了提高系統(tǒng)并發(fā)訪問數(shù)據(jù)庫的能力,減少大量事務(wù)對服務(wù)整體性能的影響,可以采取一些方案進(jìn)行服務(wù)縱向擴(kuò)展。目前常用的方法是采用數(shù)據(jù)分片、讀寫分離等方案。讀寫分離方案可以通過在服務(wù)端增加代理層(Proxy)或在業(yè)務(wù)層面開發(fā)代碼來實(shí)現(xiàn)。
在實(shí)現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:數(shù)據(jù)分片無法解決熱點(diǎn)數(shù)據(jù)問題;在服務(wù)端增加代理層(Proxy)的方式,代理層需要解析mysql(關(guān)系型數(shù)據(jù)庫管理系統(tǒng))的語法樹,攔截sql(sql是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言),識別讀寫操作進(jìn)行sql轉(zhuǎn)發(fā),整體開發(fā)復(fù)雜,并且在服務(wù)端開發(fā)代理,只能支持服務(wù)端mysql的讀寫分離,無法實(shí)現(xiàn)非mysql的代理工作,如ClickHouse數(shù)據(jù)庫存的數(shù)據(jù);在業(yè)務(wù)層面開發(fā)代碼的方式,需要重新對業(yè)務(wù)層進(jìn)行改造,開發(fā)對不同數(shù)據(jù)源的對接工作,業(yè)務(wù)侵入嚴(yán)重。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提供一種數(shù)據(jù)源讀寫分離方法、裝置、電子設(shè)備和計算機(jī)可讀介質(zhì),能夠以非侵入的方式實(shí)現(xiàn)了數(shù)據(jù)源讀寫分離,對業(yè)務(wù)代碼侵入小,支持不同類型的數(shù)據(jù)源切換,降低了開發(fā)成本。
為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明實(shí)施例的一個方面,提供了一種數(shù)據(jù)源讀寫分離方法,包括:
獲取業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)源,將所述原始數(shù)據(jù)源作為第一數(shù)據(jù)源,復(fù)制所述第一數(shù)據(jù)源得到第二數(shù)據(jù)源,將所述第一數(shù)據(jù)源和所述第二數(shù)據(jù)源其中之一作為讀數(shù)據(jù)源,另一個作為寫數(shù)據(jù)源;
攔截訪問所述業(yè)務(wù)系統(tǒng)的請求,并識別所述請求對應(yīng)的操作類型,所述操作類型包括讀操作和寫操作;
在確定所述請求對應(yīng)的操作類型為寫操作時,將所述請求鏈接到所述寫數(shù)據(jù)源進(jìn)行寫操作;在確定所述請求對應(yīng)的操作類型為讀操作時,將所述請求鏈接到所述讀數(shù)據(jù)源進(jìn)行讀操作。
可選地,所述方法還包括:創(chuàng)建代理管理器;確定每個所述第一數(shù)據(jù)源和每個所述第二數(shù)據(jù)源的標(biāo)識,所述標(biāo)識包括讀標(biāo)識和寫標(biāo)識;將所述標(biāo)識記錄在所述代理管理器中。
可選地,在確定所述請求對應(yīng)的操作類型為寫操作時,將所述請求鏈接到所述寫數(shù)據(jù)源進(jìn)行寫操作包括:
若確定所述請求對應(yīng)的操作類型為寫操作,則從所述代理管理器中查找寫標(biāo)識,將所述請求鏈接到與所述寫標(biāo)識對應(yīng)的第一數(shù)據(jù)源或第二數(shù)據(jù)源進(jìn)行寫操作;
在確定所述請求對應(yīng)的操作類型為讀操作時,將所述請求鏈接到所述讀數(shù)據(jù)源進(jìn)行讀操作包括:若確定所述請求對應(yīng)的操作類型為讀操作,則從所述代理管理器中查找讀標(biāo)識,將所述請求鏈接到與所述讀標(biāo)識對應(yīng)的第一數(shù)據(jù)源或第二數(shù)據(jù)源進(jìn)行讀操作。
可選地,獲取業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)源,將所述原始數(shù)據(jù)源作為第一數(shù)據(jù)源,復(fù)制所述第一數(shù)據(jù)源得到第二數(shù)據(jù)源包括:
獲取所述業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)源的實(shí)例,以獲取所述業(yè)務(wù)系統(tǒng)的原始數(shù)據(jù)源;
當(dāng)所述實(shí)例的數(shù)量為多個時,確定所述業(yè)務(wù)系統(tǒng)包括多個原始數(shù)據(jù)源,將所述多個原始數(shù)據(jù)源中的每個原始數(shù)據(jù)源作為第一數(shù)據(jù)源;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京沃東天駿信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司,未經(jīng)北京沃東天駿信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011050571.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種數(shù)據(jù)同步處理方法、裝置和單點(diǎn)登錄系統(tǒng)
- 數(shù)據(jù)同步方法和裝置
- 切換數(shù)據(jù)源的方法及系統(tǒng)
- 多數(shù)據(jù)源的數(shù)據(jù)遷移方法
- 數(shù)據(jù)源補(bǔ)充方法、裝置、計算機(jī)設(shè)備和存儲介質(zhì)
- 一種數(shù)據(jù)源切換方法及系統(tǒng)
- 一種基于多個數(shù)據(jù)源調(diào)節(jié)工業(yè)自動化的操作系統(tǒng)
- 從不同數(shù)據(jù)源中獲取數(shù)據(jù)的方法、裝置及計算機(jī)設(shè)備
- 一種動態(tài)數(shù)據(jù)源查詢方法及裝置
- 一種訪問多數(shù)據(jù)源的方法及系統(tǒng)





