一种InfluxDB高可用集群实现系统及方法技术方案

技术编号:32513345 阅读:25 留言:0更新日期:2022-03-02 11:03
本发明专利技术公开了一种InfluxDB高可用集群实现系统及方法,属于大数据存储技术领域。本发明专利技术的InfluxDB高可用集群实现系统包括Bufferson单元、健康状态检查单元和反向代理单元;Bufferson单元用于内部缓冲的异步HTTP代理;健康状态检查单元用于监控各节点简况状态,恢复数据时自动遍历删除InfluxDB节点;反向代理单元由Nginx支持,以限制客户端在单位时间内可以发出的HTTP请求数量。该发明专利技术的InfluxDB高可用集群实现系统将指标写入任意数量的InfluxDB节点,并在所有节点之间分配查询的高可用性的服务,具有很好的推广应用价值。值。值。

【技术实现步骤摘要】
一种InfluxDB高可用集群实现系统及方法


[0001]本专利技术涉及大数据存储
,具体提供一种InfluxDB高可用集群实现系统及方法。

技术介绍

[0002]当前,从InfluxDBv0.9版本以后,用户就无法从开源免费版本创建出InfluxDB高可用集群。目前只有商业版可以用InfluxDB Enterprise来实现。这样为InfluxDB使用者带来诸多不便,尤其是在专业设置中的使用,使用者认为是InfluxDB背后的公司

InfluxData试图挤占OSS解决方案来获取利润。
[0003]这种状况对InfluxData公司也是无可厚非的,但是商业版的InfluxDB的费用对不少使用者来说确实是不小的负担。对那些严重依赖InfluxDB的企业或者组织来说,这都是很高的成本。
[0004]虽然后来InfluxData发行了Influx Relay这一解决方案,但是因为有诸多未解决的问题,而未被广泛接受。所以需要一个能真正实现高可用架构、解决市场存在的问题的方案。

技术实现思路

[0005]本专利技术的技术任务是针对上述存在的问题,提供一种将指标写入任意数量的InfluxDB节点,并在所有节点之间分配查询的高可用性的服务的InfluxDB高可用集群实现系统及方法。
[0006]为实现上述目的,本专利技术提供了如下技术方案:
[0007]一种InfluxDB高可用集群实现系统,包括Bufferson单元、健康状态检查单元和反向代理单元;r/>[0008]Bufferson单元用于内部缓冲的异步HTTP代理;
[0009]健康状态检查单元用于监控各节点简况状态,恢复数据时自动遍历删除InfluxDB节点;
[0010]反向代理单元由Nginx支持,以限制客户端在单位时间内可以发出的HTTP请求数量。
[0011]作为优选,所述Bufferson单元使用队列提供临时性的高可用性存储,为异步缓冲的HTTP处理提供简单的代理功能。
[0012]作为优选,所述Bufferson单元包括Replay

组件和Recover

组件,Replay

组件将HTTP请求直接转发到每个上游节点,将失败的请求放入缓冲区,Recover

组件持续处理队列并尝试传递缓冲请求。
[0013]作为优选,当请求发送到Bufferson单元时,通过负载均衡机制,健康状态检查单元转发到InfluxDB实例。
[0014]InfluxDB支持/ping,这可以方便验证服务是否正在运行,但是实际上还需要确保
当节点从临时故障中恢复并且缓存数据仍在刷新时,它不会处理任何查询。因此不能完全依赖调用/ping接口来验证结点是否健康。本地运行健康状态检查,负载均衡器用于将节点置于on/off的状态进行查询。
[0015]作为优选,在每个InfluxDB实例上运行一个本地守护程序,InfluxDB实例执行检查调用InfluxDB的/ping节点和Bufferson判定节点未恢复数据两次检查,两次检查均成功后返回成功。
[0016]作为优选,反向代理单元中,通过将所有的流量通过Nginx和Nginx http limit req module实现合理的负载分配。
[0017]一些客户端的访问模式比较极端,我们希望确保合理的负载分配来避免集群产生问题。通过将所有的流量都通过Nginx和Nginx http limit req module来实现。因此可以实现更大程度的保证极端访问模式下集群的稳定性。
[0018]将指标写入任意数量的InfluxDB节点并在所有节点之间分配查询,以提供高可用性的服务。如果可以构建一个工具来在单个节点上运行可靠的运行状况检查,那么标准负载均衡器就足以解决后者。对于前者,我们必须建立一种机制来转发写入或复制数据。
[0019]用于向InfluxDB添加高可用性和故障恢复的技术包括:
[0020]1、利用重复写入多个独立结点的指标来解决写入高可用性问题;
[0021]2、利用缓存区有效负载来解决临时故障;
[0022]3、利用备份还原+缓存区有效负载来解决永久故障问题;
[0023]4、利用全局和单个数据库速率限制来解决流量峰值问题。
[0024]添加了Bufferson单元、健康状态检查单元和反向代理单元来说明了由InfluxDB支持的监视堆栈存储层。
[0025]一种InfluxDB高可用集群实现方法,该方法通过本专利技术所述InfluxDB高可用集群实现系统来实现,将指标写入任意数量的InfluxDB节点,并在所有节点间分配查询,Bufferson单元用于内部缓冲的异步HTTP代理,健康状态检查单元用于监控各节点简况状态,恢复数据时自动遍历删除InfluxDB节点,反向代理单元由Nginx支持,以限制客户端在单位时间内可以发出的HTTP请求数量。
[0026]作为优选,运行定时任务时,使用Rsync定时备份数据,出现临时性故障,Bufferson

recovery不断从该缓冲区提取数据,并在节点再次可用时交付运行,启动实例,添加到Bufferson,还原备份,启动InfluxDB,Bufferson开始传递缓冲区中的恢复备份的请求。
[0027]与现有技术相比,本专利技术的InfluxDB高可用集群实现方法具有以下突出的有益效果:所述InfluxDB高可用集群实现方法实现InfluxDB高可用集群,增加了稳定性和安全性,具有良好的推广应用价值。
附图说明
[0028]图1是本专利技术所述InfluxDB高可用集群实现系统的拓扑图。
具体实施方式
[0029]下面将结合附图和实施例,对本专利技术的InfluxDB高可用集群实现系统及方法作进
一步详细说明。
[0030]实施例
[0031]如图1所示,本专利技术的InfluxDB高可用集群实现系统,包括Bufferson单元、健康状态检查单元和反向代理单元。
[0032]Bufferson单元用于内部缓冲的异步HTTP代理。
[0033]Bufferson单元包括Replay

组件和Recover

组件,Replay

组件将HTTP请求直接转发到每个上游节点,将失败的请求放入缓冲区,Recover

组件持续处理队列并尝试传递缓冲请求。Bufferson单元使用队列提供临时性的高可用性存储,为异步缓冲的HTTP处理提供简单的代理功能。
[0034]健康状态检查单元用于监控各节点简况状态,恢复数据时自动遍历删除InfluxDB节点。
[0035]当请求发送到Bufferson单元时,通过负载均衡机制,健康状态检查单元转发到InfluxDB实例。
[003本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种InfluxDB高可用集群实现系统,其特征在于:包括Bufferson单元、健康状态检查单元和反向代理单元;Bufferson单元用于内部缓冲的异步HTTP代理;健康状态检查单元用于监控各节点简况状态,恢复数据时自动遍历删除InfluxDB节点;反向代理单元由Nginx支持,以限制客户端在单位时间内可以发出的HTTP请求数量。2.根据权利要求1所述的InfluxDB高可用集群实现系统,其特征在于:所述Bufferson单元使用队列提供临时性的高可用性存储,为异步缓冲的HTTP处理提供简单的代理功能。3.根据权利要求2所述的InfluxDB高可用集群实现系统,其特征在于:所述Bufferson单元包括Replay

组件和Recover

组件,Replay

组件将HTTP请求直接转发到每个上游节点,将失败的请求放入缓冲区,Recover

组件持续处理队列并尝试传递缓冲请求。4.根据权利要求3所述的InfluxDB高可用集群实现系统,其特征在于:当请求发送到Bufferson单元时,通过负载均衡机制,健康状态检查单元转发到InfluxDB实例。5.根据权利要求4所述的InfluxDB高可用集群实现系统,其特征在于:在每个InfluxDB实例上运行一...

【专利技术属性】
技术研发人员:高翔宇曹博吴楠
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1