Closed Juke-github closed 2 years ago
为了保证数据一致性,如果某个实例停掉了,而其它实例创建数据库成功的话,当这个实例重启后,就会导致数据库信息不一致,后面写入数据就会被丢弃,所以创建数据库必须要求所有实例都是正在运行的
influxdb cluster 是按照 influxdb enterprise 来编写的,可以参考官方 influxdb enterprise 文档: https://docs.influxdata.com/enterprise_influxdb/v1.8/concepts/clustering/ influxdb cluster支持高可用集群、更好的扩缩容、所有query语句
InfluxDB Cluster v1.8.10-c1.0.0 正式发布,参考 InfluxDB Enterprise 进行实现, 基于最新代码 InfluxDB v1.8.10 开发,旨在替换 InfluxDB Enterprise
项目地址:https://github.com/chengshiwen/influxdb-cluster
欢迎试用反馈👏🏻
InfluxDB Cluster和通过influx-proxy实现的集群有哪些区别呢
influx-proxy:基于代理的方式,influx-proxy 程序通过db和measurement进行hash,确定要写入或查询某个 influxdb 节点,因此有些 influxql 语句不支持,例如 select into、语句中含有正则表达式等,此外 continuous query 也不支持等,架构如下图所示
influxdb-cluster:完全按照官方 influxdb enterprise 集群实现,几乎一模一样,也不存在上述的问题,架构如下图所示
有3个circle,每个circle有两个influxdb实例,当停掉一个influxdb实例,创建数据库时
curl -X POST 'http://127.0.0.1:7076/query' --data-urlencode 'q=CREATE DATABASE "mytest2"'
会报 {"error":"backend influxdb-1-1(http://127.0.0.1:8066) unavailable"} 这是为什么呢?