[發(fā)明專利]一種雙主架構(gòu)的InfluxDB高可用系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 202010616116.3 | 申請(qǐng)日: | 2020-07-01 |
| 公開(kāi)(公告)號(hào): | CN111752758B | 公開(kāi)(公告)日: | 2022-05-31 |
| 發(fā)明(設(shè)計(jì))人: | 趙山;王陽(yáng);厲穎 | 申請(qǐng)(專利權(quán))人: | 浪潮云信息技術(shù)股份公司 |
| 主分類號(hào): | G06F11/14 | 分類號(hào): | G06F11/14;G06F16/27 |
| 代理公司: | 濟(jì)南信達(dá)專利事務(wù)所有限公司 37100 | 代理人: | 孫園園 |
| 地址: | 250100 山東省濟(jì)南市高*** | 國(guó)省代碼: | 山東;37 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 架構(gòu) influxdb 可用 系統(tǒng) | ||
1.一種雙主架構(gòu)的InfluxDB高可用系統(tǒng),其特征在于,該系統(tǒng)包括訪問(wèn)模塊和監(jiān)控容災(zāi)模塊,訪問(wèn)模塊和監(jiān)控容災(zāi)模塊與兩個(gè)InfluxDB節(jié)點(diǎn)配合使用;
訪問(wèn)模塊用于將用戶的寫(xiě)請(qǐng)求同時(shí)在兩個(gè)InfluxDB節(jié)點(diǎn)上執(zhí)行,保證數(shù)據(jù)庫(kù)節(jié)點(diǎn)的實(shí)時(shí)一致性,同時(shí)訪問(wèn)模塊將用戶的讀請(qǐng)求交替發(fā)送給兩個(gè)InfluxDB節(jié)點(diǎn),以實(shí)現(xiàn)負(fù)載均衡,提升查詢性能;
監(jiān)控容災(zāi)模塊用于監(jiān)控后端InfluxDB節(jié)點(diǎn)的可用狀態(tài),并向訪問(wèn)模塊提供狀態(tài)查詢接口,同時(shí)當(dāng)發(fā)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)存在延遲時(shí)自動(dòng)將數(shù)據(jù)進(jìn)行補(bǔ)齊;
其中,訪問(wèn)模塊作為代理層對(duì)外提供與InfluxDB相同的訪問(wèn)協(xié)議接口,用戶通過(guò)InfluxDB客戶端或Http客戶端連接并訪問(wèn)數(shù)據(jù)庫(kù);訪問(wèn)協(xié)議接口包括GET/query接口和POST/write接口;GET/query接口具體處理邏輯如下:
(1)、查詢本次應(yīng)訪問(wèn)InfluxDB數(shù)據(jù)庫(kù)節(jié)點(diǎn)A,則下一步執(zhí)行步驟(2);
(2)、向監(jiān)控容災(zāi)模塊查詢節(jié)點(diǎn)A是否可用,則下一步執(zhí)行步驟(3);
(3)、判斷節(jié)點(diǎn)A狀態(tài)是否可用:
①、若是,則下一步執(zhí)行步驟(4);
②、若否,則跳轉(zhuǎn)至步驟(7)
(4)、將請(qǐng)求發(fā)送至節(jié)點(diǎn)A并接收響應(yīng),則下一步執(zhí)行步驟(5);
(5)、判斷節(jié)點(diǎn)B是否為可用狀態(tài):
①、若是,則下一步執(zhí)行步驟(6);
②、若否,則跳轉(zhuǎn)至步驟(10);
(6)、設(shè)置節(jié)點(diǎn)B為下次訪問(wèn)節(jié)點(diǎn),下一步執(zhí)行步驟(10);
(7)、判斷節(jié)點(diǎn)B是否可用:
①、若是,則下一步執(zhí)行步驟(8);
②、若否,則下一步執(zhí)行步驟(10);
(8)、將節(jié)點(diǎn)A標(biāo)記為不可用狀態(tài),并啟動(dòng)后臺(tái)異步線程更新節(jié)點(diǎn)A狀態(tài),下一步執(zhí)行步驟(9);
(9)、將節(jié)點(diǎn)B設(shè)置為下一訪問(wèn)節(jié)點(diǎn),下一步跳轉(zhuǎn)至步驟(2);
(10)、將響應(yīng)返回客戶端。
2.根據(jù)權(quán)利要求1所述的雙主架構(gòu)的InfluxDB高可用系統(tǒng),其特征在于,所述步驟(8)中啟動(dòng)后臺(tái)異步線程后,每5分鐘請(qǐng)求監(jiān)控容災(zāi)模塊以更新節(jié)點(diǎn)A狀態(tài),當(dāng)節(jié)點(diǎn)A狀態(tài)更新為可用狀態(tài)后,后臺(tái)異步線程退出。
3.根據(jù)權(quán)利要求1或2所述的雙主架構(gòu)的InfluxDB高可用系統(tǒng),其特征在于,所述POST/write接口的處理邏輯如下:
(一)、接到POST/write接口請(qǐng)求;
(二)、查詢后端所有可用InfluxDB節(jié)點(diǎn);
(三)、將請(qǐng)求同時(shí)發(fā)送至各數(shù)據(jù)庫(kù)節(jié)點(diǎn);
(四)、是否有任意節(jié)點(diǎn)請(qǐng)求成功:
①、若有任意一個(gè)節(jié)點(diǎn)返回成功,則將響應(yīng)返回給客戶端;
②、若所有節(jié)點(diǎn)都請(qǐng)求失敗,則向客戶端響應(yīng)請(qǐng)求失敗。
4.根據(jù)權(quán)利要求1所述的雙主架構(gòu)的InfluxDB高可用系統(tǒng),其特征在于,所述監(jiān)控容災(zāi)模塊部署兩套,分別以一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),另一個(gè)節(jié)點(diǎn)為復(fù)制節(jié)點(diǎn),以保證兩個(gè)節(jié)點(diǎn)的雙向一致性;監(jiān)控容災(zāi)模塊具體處理邏輯具體如下:
S1、設(shè)置InfluxDB節(jié)點(diǎn)A為主節(jié)點(diǎn),將節(jié)點(diǎn)B設(shè)置為復(fù)制節(jié)點(diǎn);
S2、檢查節(jié)點(diǎn)A的狀態(tài);
S3、判斷節(jié)點(diǎn)A是否可用:
①、若是,則執(zhí)行步驟S4;
②、若否,則標(biāo)記節(jié)點(diǎn)A為不可用狀態(tài),跳轉(zhuǎn)至步驟S2;
S4、檢查節(jié)點(diǎn)A的數(shù)據(jù)是否與節(jié)點(diǎn)B一致:
若不一致,則執(zhí)行步驟S5;
S5、檢查節(jié)點(diǎn)A中的數(shù)據(jù)是否落后于節(jié)點(diǎn)B:
①、若是,則執(zhí)行步驟S6;
②、若否,則跳轉(zhuǎn)至步驟S8;
S6、標(biāo)記節(jié)點(diǎn)A為不可用狀態(tài);
S7、從節(jié)點(diǎn)B同步缺失數(shù)據(jù)到節(jié)點(diǎn)A;
S8、將節(jié)點(diǎn)A標(biāo)記為可用狀態(tài),跳轉(zhuǎn)至步驟S2。
5.根據(jù)權(quán)利要求4所述的雙主架構(gòu)的InfluxDB高可用系統(tǒng),其特征在于,所述步驟S5中檢查節(jié)點(diǎn)A中的數(shù)據(jù)是否落后于節(jié)點(diǎn)B是以schema和measurem ent為單位。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浪潮云信息技術(shù)股份公司,未經(jīng)浪潮云信息技術(shù)股份公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010616116.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 一種基于時(shí)間序列數(shù)據(jù)庫(kù)InfluxDB的監(jiān)控?cái)?shù)據(jù)存儲(chǔ)方法
- 一種業(yè)務(wù)系統(tǒng)調(diào)用influxdb數(shù)據(jù)庫(kù)的方法、存儲(chǔ)介質(zhì)和服務(wù)器
- 節(jié)點(diǎn)處理方法及裝置、存儲(chǔ)介質(zhì)和電子設(shè)備
- 一種基于zookeeper實(shí)現(xiàn)Influxdb-proxy的高可用及負(fù)載均衡方法
- 一種InfluxDB數(shù)據(jù)備份方法、系統(tǒng)及終端設(shè)備
- 一種雙主架構(gòu)的InfluxDB高可用系統(tǒng)
- 基于pandas庫(kù)與InfluxDB數(shù)據(jù)庫(kù)的數(shù)據(jù)管理方法、系統(tǒng)、終端及介質(zhì)
- 一種基于InfluxDB的集群數(shù)據(jù)監(jiān)控方法
- 時(shí)序數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)處理方法及裝置
- 基于表路由分片引擎的InfluxDB分布式集群方法





