当前位置: 首页 > 后端技术 > Node.js

时序数据库InfluxDB(七)

时间:2023-04-03 18:04:19 Node.js

相关文章:时序数据库InfluxDB(一)时序数据库InfluxDB(二)时序数据库InfluxDB(三)时序数据库InfluxDB(四)时序数据库InfluxDB(五)时序数据库InfluxDB(六)单点故障和容灾备份开源社区版InfluxDB面临的最大问题是单点故障和容灾备份。有解决这个问题的简单方法吗?既然有单点故障的可能,就干脆写入多个节点,也解决了容灾和备份的问题:1.在不同机器上配置多个InfluxDB实例。写入数据时,客户端直接并发写入多个实例。(为什么不用代理,因为代理本身就是单点的)。2.当InfluxDB实例失败,写入失败时,记录失败的数据和节点。这些失败的数据可以暂存在数据库、消息中间件、日志文件等中。3.通过customworker拉取上一步记录的失败数据,重新写入数据。4、多个InfluxDB中的数据是最终一致的。当然需要注意:1.由于是多节点并发写入,不同机器的情况不一样,写入数据要设置超时时间。2.写入失败的数据必须对应节??点。同时还要考虑如何定义失败的数据:4xx是格式不正确或权限问题导致的还是5xx是InfluxDB自身异常导致的。这些与InfluxDB宕机等故障导致的故障明显不同。3、由于失败的数据需要暂存在一个数据容器中,所以要考虑所使用的数据容器能否承受失败时写入的数据压力,如果数据不能丢失,那么数据容器也需要有相应的支持。4.失败数据的重写是一个异步过程,所以写入的数据应该由客户端指定明确的时间戳,而不是使用InfluxDB在写入时默认生成的时间戳。5、在故障期间,多个InfluxDB可能会出现数据不一致的情况。

猜你喜欢