如果监控全部接入单节点influxdb显然不能满足需求,Influxdb免费版不支持集群,商业版按照节点数收费不合理,在查询Influxdb监控数据的时候天然不会跨表(Measurement)查询。
一、数据处理
连接kafka/RocketMQ服务从其中获取数据,处理数据之后调用代理网关将数据插入数据库中。
二、查询代理
预处理查询语句,过滤危险查询代码,调用查询InfluxDB数据库。
三、网关层
网关用proxy模式来做数据分片,它的功能包括:
- 按 db 和 measurement 分片写入不同节点
- 聚合查询请求
- 保存节点配置、转发规则到nacos中
- 动态配置和更新网关中的配置
- 在某个节点宕机后,下线或者替换某个节点
- 基于raft分布式一致性协议实现AP