前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >时序数据库 InfluxDB(七)

时序数据库 InfluxDB(七)

作者头像
凌虚
发布2020-07-17 11:42:29
1.6K0
发布2020-07-17 11:42:29
举报

单点故障和容灾备份

InfluxDB 开源的社区版本面临的最大的问题就是单点故障和容灾备份,有没有一个简单的方案去解决这个问题呢?

既然有单点故障的可能,那么索性写入多个节点,同时也解决了容灾备份的问题:

1、在不同的机器上配置多个 InfluxDB 实例,写入数据时,直接由客户端并发写入多个实例。(为什么不用代理,因为代理自身就是个单点)。

2、当某个 InfluxDB 实例故障而导致写入失败时,记录失败的数据和节点,这些失败的数据可以临时存储在数据库、消息中间件、日志文件等等里面。

3、通过自定义的 worker 拉取上一步记录的失败的数据然后重写这些数据。

4、多个 InfluxDB 中的数据最终一致。

当然你需要注意的是:

1、由于是并发写入多个节点,且不同机器的状况不一,所以写入数据应该设置一个超时时间。

2、写入失败的数据必须要与节点相对应,同时你应该考虑如何去定义失败的数据:由于格式不正确或者权限问题导致的 4xx 或者 InfluxDB 本身异常导致的 5xx ,这些与 InfluxDB 宕机等故障导致的失败显然是不同的。

3、由于失败的数据需要临时存储在一个数据容器中,你应该考虑所使用的数据容器能否承载故障期间写入的数据压力,以及如果数据要求不可丢失,那么数据容器也需要有对应的支持。

4、失败数据的重写是一个异步的过程,所以写入的数据应该由客户端指定明确的时间戳,而不是使用 InfluxDB 写入时默认生成的时间戳。

5、故障期间多个 InfluxDB 可能存在数据不一致的情况。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Node Python Go全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档