目录
前言
最近公司项目需要用到时序数据库,最终选择了influxdb,在springboot集成中也遇到了一些问题,现在把对接方法分享给大家,当前文档描述的的对接influxdb1.x版本,2.0版本会在下一篇博客发出。
influxdb2.x整合可跳转springboot整合influxdb2.x
对接步骤
1、引入依赖
maven
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>${influxdbClient.version}</version>
</dependency>
gradle
compile group: 'org.influxdb', name: 'influxdb-java', version: "${influxdbClientVersion}"
2、配置数据库参数
以.yml为例
spring:
influx:
url: http://127.0.0.1:8086
password: 123
user: 123
database: db
3、创建配置类
import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
import org.springframework.bean.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.TimeUnit;
@Configuration
public class InfluxDbConfig {
@Value("${spring.influx.url:''}")
private String influxDBUrl;
@Value("${spring.influx.user:''}")
private String userName;
@Value("${spring.influx.password:''}")
private String password;
@Value("${spring.influx.database:''}")
private String database;
@Bean
public InfluxDB influxDB() {
InfluxDB influxDB = InfluxDBFactory.connect(influxDBUrl, userName,password);
try {
/**
* 异步插入: enableBatch这里第一个是point的个数,第二个是时间,单位毫秒 point的个数和时间是联合使用的,如果满100条或者2000毫秒
* 满足任何一个条件就会发送一次写的请求。
*/
influxDB.setDatabase(database).enableBatch(100, 2000, TimeUnit.MILLISECONDS);
} catch (Exception e) {
e.printStackTrace();
} finally {
influxDB.setRetentionPolicy("autogen");
}
influxDB.setLogLevel(InfluxDB.LogLevel.BASIC);
return influxDB;
}
}
4、数据操作
public class TimeSeries {
@Autowired
InfluxDB influxDB;
//数据保存
public void saveMessage(Map<String,Object> fields){
Point.Builder builder=Point.measurement(MeasurementConstant.MEASUREMENT_SMOKE);
builder.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
.fields(fields);
influxDB.write(builder.build());
}
//数据读取
public void getMessage(String command){
Query query=new Query(command,MeasurementConstant.DATABASE);
QueryResult queryResult=influxDB.query(query);
}
}
更多操作可到influxdb-java项目地址查看 https://github.com/influxdata/influxdb-java