InfluxDB主要模块架构
- Client: 这边的Client指能与influxDB服务器交互的客户端,如influx,influx-java,chronograf等。
- Server
- Httpd: 接收处理http请求。InfluxDB是RESTful服务器,所有的客户端请求都会被封装成http请求发送给服务器端进行处理
- Influxql: 用于解析SQL,生成AST等
- Coordinator:协调模块
- StatementExecutor: 将SQL statement发送给Meta和Store模块进行处理
- PointsWriter:将实际数据写入交由Store模块进行处理
- Store: Shard管理模块
- Shard: 实际写入查询模块
- Engine:执行引擎
- Index: 倒排索引管理模块
- Shard: 实际写入查询模块
写入流程
- client发送写入请求给server端
- httpd模块接收到写入请求,从http body中提取写入的数据并解析成point(注意tagValue中“\n”换行符需要转义,否则会将\n后的内容当成下一个point进行解析)
- pointsWriter模块接收到httpd模块解析的points后与meta模块进行交互获得points ->