shell909090/influx-proxy

节点数据备份与高可用问题请教

tixff opened this issue · 6 comments

tixff commented

1.数据备份:
1)是否在keymap配置measurements指向多个backend 就可以实现数据备份
2)新的measureents添加是否都需要修改config.py添加 keymap配置再刷到redis
2.数据查询的的时候其中一个backend 挂掉proxy是否能自动切换到另外一个节点查询,写入同理

tixff commented

另外挂掉的节点在重启后 能自动同步丢失的数据吗 保证各节点数据的一致性

1.数据备份:
1)是否在keymap配置measurements指向多个backend 就可以实现数据备份
2)新的measureents添加是否都需要修改config.py添加 keymap配置再刷到redis
2.数据查询的的时候其中一个backend 挂掉proxy是否能自动切换到另外一个节点查询,写入同理

    1. 是的
    1. 对于新规则,可以通过config.py修改后刷到redis,也可以直接修改redis
  1. 如果在keymaps中配置了一个key对应多个backend,那么查询时,挂掉了一个backend,会尝试查第二个backend;对于写入,如果挂掉一个backend,proxy会将写入失败的数据缓存到本地,等待backend恢复后尝试写入

另外挂掉的节点在重启后 能自动同步丢失的数据吗 保证各节点数据的一致性

能同步之前宕机导致的未写入的数据,各节点数据的一致性是最终一致性

另外:可以参考基于本库 fork 后的新版本 influx proxy: https://github.com/chengshiwen/influx-proxy
支持了更多特性,也移除了python和redis的依赖
对比参考:#111

tixff commented
  1. 如果在keymaps中配置了一个key对应多个backend,那么查询时,挂掉了一个backend,会尝试查第二个backend;对于写入,如果挂掉一个backend,proxy会将写入失败的数据缓存到本地,等待backend恢复后尝试写入

另外挂掉的节点在重启后 能自动同步丢失的数据吗 保证各节点数据的一致性

@chengshiwen 非常感谢您的耐心回答,基于以上我还有几点不清楚的地方
1)数据将失败的数据缓存到本地是指proxy节点所在的机器吗,默认缓存路径是什么位置呢,可配置吗?(考虑到如果数据量大,默认配置打到了较小的磁盘造成磁盘不够用)
2)失败节点恢复后是立即同步数据吗

@tixff 1) https://github.com/shell909090/influx-proxy 是无法配置的,路径是执行influx-proxy的当前目录下的 .rec 和 .dat 文件;https://github.com/chengshiwen/influx-proxy 是可以配置的缓存目录的位置的。数据量大的问题,这个只能用更大的磁盘解决
2) 失败节点恢复后是立即同步数据吗? 是的

tixff commented

@chengshiwen 了解了,https://github.com/chengshiwen/influx-proxy 新版本的配置(proxy.json)是动态加载的吗,还是需要手动重启proxy进行加载呢

目前是重启加载,不会动态加载