[發(fā)明專利]一種實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)代理的方法及裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201210473158.1 | 申請(qǐng)日: | 2012-11-20 |
| 公開(公告)號(hào): | CN102982141A | 公開(公告)日: | 2013-03-20 |
| 發(fā)明(設(shè)計(jì))人: | 張輝華 | 申請(qǐng)(專利權(quán))人: | 北京搜狐新媒體信息技術(shù)有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30;H04L29/06 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 100084 北京市海淀區(qū)中關(guān)*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 實(shí)現(xiàn) 分布式 數(shù)據(jù)庫(kù) 代理 方法 裝置 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及分布式數(shù)據(jù)庫(kù)領(lǐng)域,特別涉及一種實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)代理的方法及裝置。
背景技術(shù)
數(shù)據(jù)庫(kù)代理是介于數(shù)據(jù)庫(kù)客戶端和服務(wù)器之間,主要起請(qǐng)求轉(zhuǎn)發(fā)作用的實(shí)體。客戶端使用各個(gè)數(shù)據(jù)庫(kù)時(shí),不需要知道后端數(shù)據(jù)庫(kù)服務(wù)器的IP和端口,只需要知道數(shù)據(jù)庫(kù)代理的IP和端口,以及需要使用的數(shù)據(jù)庫(kù)用戶名、密碼和數(shù)據(jù)庫(kù)名,通過數(shù)據(jù)庫(kù)代理即可訪問數(shù)據(jù)庫(kù)。例如,MySQL?Proxy數(shù)據(jù)庫(kù)代理。
隨著數(shù)據(jù)庫(kù)應(yīng)用規(guī)模的擴(kuò)大,分布式數(shù)據(jù)庫(kù)越來越得到廣泛應(yīng)用,對(duì)于分布式數(shù)據(jù)庫(kù)來說,某個(gè)局部的數(shù)據(jù)庫(kù)可能會(huì)隨時(shí)出現(xiàn)增加或者刪除等變化,但是,由于一般數(shù)據(jù)庫(kù)代理只能靜態(tài)配置一組數(shù)據(jù)庫(kù),在某個(gè)局部數(shù)據(jù)庫(kù)增加時(shí),客戶端無法及時(shí)訪問到該數(shù)據(jù)庫(kù),因此無法滿足分布式數(shù)據(jù)庫(kù)代理的需求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)代理的方法及裝置以實(shí)現(xiàn)在數(shù)據(jù)庫(kù)變化時(shí)不影響客戶端訪問的目的。
本發(fā)明提供的一種實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)代理的方法,包括:
通過監(jiān)聽數(shù)據(jù)庫(kù)配置信息的變化,更新所保存的數(shù)據(jù)庫(kù)配置信息,所述配置信息至少包括數(shù)據(jù)庫(kù)名稱、其對(duì)應(yīng)的IP地址和端口;
接收客戶端對(duì)目標(biāo)數(shù)據(jù)庫(kù)的連接請(qǐng)求,獲得目標(biāo)數(shù)據(jù)庫(kù)名稱;
若目標(biāo)數(shù)據(jù)庫(kù)名稱在所保存的數(shù)據(jù)庫(kù)配置信息中,根據(jù)目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的IP地址和端口,建立客戶端與目標(biāo)數(shù)據(jù)庫(kù)的連接。
可選地,所述通過監(jiān)聽數(shù)據(jù)庫(kù)配置信息,更新所保存的數(shù)據(jù)庫(kù)配置信息具體實(shí)現(xiàn)為:
讀取所保存的數(shù)據(jù)庫(kù)配置信息;
根據(jù)所述數(shù)據(jù)庫(kù)配置信息,訪問該數(shù)據(jù)庫(kù);
如果訪問失敗,刪除該數(shù)據(jù)庫(kù)配置信息;
如果訪問正常,接收返回的更新數(shù)據(jù)庫(kù)配置信息,更新該數(shù)據(jù)庫(kù)配置信息。
可選地,該方法還包括獲得所保存的數(shù)據(jù)庫(kù)配置信息的步驟:
接收數(shù)據(jù)庫(kù)配置信息的注冊(cè)請(qǐng)求,所述數(shù)據(jù)庫(kù)配置信息至少包括數(shù)據(jù)庫(kù)名稱、IP地址和端口;
為該數(shù)據(jù)庫(kù)配置信息分配存儲(chǔ)空間,保存該數(shù)據(jù)庫(kù)配置信息。
可選地,所述通過監(jiān)聽數(shù)據(jù)庫(kù)配置信息,更新所保存的數(shù)據(jù)庫(kù)配置信息具體實(shí)現(xiàn)為:
監(jiān)聽ZooKeeper發(fā)出的數(shù)據(jù)庫(kù)節(jié)點(diǎn)狀態(tài)變化的通知;
在監(jiān)聽到所述通知時(shí),讀取ZooKeeper上保存的數(shù)據(jù)庫(kù)節(jié)點(diǎn)的配置信息;
更新數(shù)據(jù)庫(kù)配置信息。
可選地,該方法還包括:若目標(biāo)數(shù)據(jù)庫(kù)名稱不在數(shù)據(jù)庫(kù)配置信息中,向客戶端返回?cái)?shù)據(jù)庫(kù)信息不存在錯(cuò)誤。
可選地,所述根據(jù)目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的IP地址和端口,建立客戶端與目標(biāo)數(shù)據(jù)庫(kù)的連接具體實(shí)現(xiàn)為:
查詢是否存在目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的連接池;
如果存在,從目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的連接池中取出空閑連接,通過該空閑連接建立客戶端與目標(biāo)數(shù)據(jù)庫(kù)的連接,并且將該空閑連接狀態(tài)設(shè)置為繁忙,其中,所述空閑連接具體根據(jù)數(shù)據(jù)庫(kù)配置信息中該目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的IP地址和端口創(chuàng)建;
如果不存在,根據(jù)數(shù)據(jù)庫(kù)配置信息中該目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的IP地址和端口創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的連接池,其中所述連接池包含最小連接數(shù)個(gè)空閑連接,從該連接池中取出空閑連接,通過該空閑連接建立客戶端與目標(biāo)數(shù)據(jù)庫(kù)的連接,并且將該空閑連接狀態(tài)設(shè)為繁忙。
可選地,所述從目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的連接池中取出空閑連接,具體實(shí)現(xiàn)為:
判斷目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的連接池中是否有空閑連接;
如果有,從目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的連接池中取出空閑連接;
如果沒有,判斷目標(biāo)數(shù)據(jù)庫(kù)名稱對(duì)應(yīng)的連接池中的連接數(shù)是否小于最大連接數(shù)閾值,如果是,在該連接池中增加與目標(biāo)數(shù)據(jù)庫(kù)的空閑連接,從該連接池中取出空閑連接。
可選地,在建立客戶端與目標(biāo)數(shù)據(jù)庫(kù)的連接之后,還可以包括:
接收客戶端斷開與目標(biāo)數(shù)據(jù)庫(kù)連接的請(qǐng)求;
根據(jù)所述請(qǐng)求,斷開與客戶端的連接,將與目標(biāo)數(shù)據(jù)庫(kù)的連接放回目標(biāo)數(shù)據(jù)名稱對(duì)應(yīng)的連接池,并且將該連接狀態(tài)設(shè)置為空閑。
可選地,該方法還包括:
計(jì)算所述連接池內(nèi)的空閑連接的空閑時(shí)間;
查詢出空閑時(shí)間超過預(yù)設(shè)空閑時(shí)間閾值的空閑連接;
若所查詢出的空閑連接所在連接池內(nèi)的連接個(gè)數(shù)大于最小連接數(shù)閾值,則將所查詢出的空閑連接從連接池內(nèi)刪除。
可選地,所述數(shù)據(jù)庫(kù)配置信息還可以包括用戶名和密碼;
所述接收客戶端對(duì)數(shù)據(jù)庫(kù)的連接請(qǐng)求,獲得目標(biāo)數(shù)據(jù)庫(kù)名稱時(shí),還獲得客戶端的用戶名和密碼;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京搜狐新媒體信息技術(shù)有限公司,未經(jīng)北京搜狐新媒體信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210473158.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 互動(dòng)業(yè)務(wù)終端、實(shí)現(xiàn)系統(tǒng)及實(shí)現(xiàn)方法
- 街景地圖的實(shí)現(xiàn)方法和實(shí)現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實(shí)現(xiàn)裝置及其圖像實(shí)現(xiàn)方法
- 增強(qiáng)現(xiàn)實(shí)的實(shí)現(xiàn)方法以及實(shí)現(xiàn)裝置
- 軟件架構(gòu)的實(shí)現(xiàn)方法和實(shí)現(xiàn)平臺(tái)
- 數(shù)值預(yù)報(bào)的實(shí)現(xiàn)方法及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實(shí)現(xiàn)方法和實(shí)現(xiàn)裝置以及實(shí)現(xiàn)系統(tǒng)
- 輸入設(shè)備實(shí)現(xiàn)方法及其實(shí)現(xiàn)裝置
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置





