[发明专利]一种双主架构的InfluxDB高可用系统有效
申请号: | 202010616116.3 | 申请日: | 2020-07-01 |
公开(公告)号: | CN111752758B | 公开(公告)日: | 2022-05-31 |
发明(设计)人: | 赵山;王阳;厉颖 | 申请(专利权)人: | 浪潮云信息技术股份公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F16/27 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250100 山东省济南市高*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 架构 influxdb 可用 系统 | ||
1.一种双主架构的InfluxDB高可用系统,其特征在于,该系统包括访问模块和监控容灾模块,访问模块和监控容灾模块与两个InfluxDB节点配合使用;
访问模块用于将用户的写请求同时在两个InfluxDB节点上执行,保证数据库节点的实时一致性,同时访问模块将用户的读请求交替发送给两个InfluxDB节点,以实现负载均衡,提升查询性能;
监控容灾模块用于监控后端InfluxDB节点的可用状态,并向访问模块提供状态查询接口,同时当发现数据库数据存在延迟时自动将数据进行补齐;
其中,访问模块作为代理层对外提供与InfluxDB相同的访问协议接口,用户通过InfluxDB客户端或Http客户端连接并访问数据库;访问协议接口包括GET/query接口和POST/write接口;GET/query接口具体处理逻辑如下:
(1)、查询本次应访问InfluxDB数据库节点A,则下一步执行步骤(2);
(2)、向监控容灾模块查询节点A是否可用,则下一步执行步骤(3);
(3)、判断节点A状态是否可用:
①、若是,则下一步执行步骤(4);
②、若否,则跳转至步骤(7)
(4)、将请求发送至节点A并接收响应,则下一步执行步骤(5);
(5)、判断节点B是否为可用状态:
①、若是,则下一步执行步骤(6);
②、若否,则跳转至步骤(10);
(6)、设置节点B为下次访问节点,下一步执行步骤(10);
(7)、判断节点B是否可用:
①、若是,则下一步执行步骤(8);
②、若否,则下一步执行步骤(10);
(8)、将节点A标记为不可用状态,并启动后台异步线程更新节点A状态,下一步执行步骤(9);
(9)、将节点B设置为下一访问节点,下一步跳转至步骤(2);
(10)、将响应返回客户端。
2.根据权利要求1所述的双主架构的InfluxDB高可用系统,其特征在于,所述步骤(8)中启动后台异步线程后,每5分钟请求监控容灾模块以更新节点A状态,当节点A状态更新为可用状态后,后台异步线程退出。
3.根据权利要求1或2所述的双主架构的InfluxDB高可用系统,其特征在于,所述POST/write接口的处理逻辑如下:
(一)、接到POST/write接口请求;
(二)、查询后端所有可用InfluxDB节点;
(三)、将请求同时发送至各数据库节点;
(四)、是否有任意节点请求成功:
①、若有任意一个节点返回成功,则将响应返回给客户端;
②、若所有节点都请求失败,则向客户端响应请求失败。
4.根据权利要求1所述的双主架构的InfluxDB高可用系统,其特征在于,所述监控容灾模块部署两套,分别以一个节点为主节点,另一个节点为复制节点,以保证两个节点的双向一致性;监控容灾模块具体处理逻辑具体如下:
S1、设置InfluxDB节点A为主节点,将节点B设置为复制节点;
S2、检查节点A的状态;
S3、判断节点A是否可用:
①、若是,则执行步骤S4;
②、若否,则标记节点A为不可用状态,跳转至步骤S2;
S4、检查节点A的数据是否与节点B一致:
若不一致,则执行步骤S5;
S5、检查节点A中的数据是否落后于节点B:
①、若是,则执行步骤S6;
②、若否,则跳转至步骤S8;
S6、标记节点A为不可用状态;
S7、从节点B同步缺失数据到节点A;
S8、将节点A标记为可用状态,跳转至步骤S2。
5.根据权利要求4所述的双主架构的InfluxDB高可用系统,其特征在于,所述步骤S5中检查节点A中的数据是否落后于节点B是以schema和measurem ent为单位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮云信息技术股份公司,未经浪潮云信息技术股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010616116.3/1.html,转载请声明来源钻瓜专利网。