到目前为止,我使用Apache Camel(JAVA)将数据从Apache Kafka代理路由到InfluxDB 1.8。现在,我将数据库升级到InfluxDB 2.5。
两个InfluxDB版本在读/写API方面不兼容。例如,无法注入阅读/写所需的安全令牌。
InfluxDB 1.8需要依赖项
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>XXX</version>
InfluxDB 2.5要求
<groupId>com.influxdb</groupId>
<artifactId>influxdb-client-java</artifactId>
<version>YYY</version>
在Apache Camel中提供了一个InfluxDB组件:
<groupId>org.apache.camel</groupId>
<artifactId>camel-influxdb</artifactId>
<version>ZZZ</version>
它依赖于influx-client
库。这是否意味着不再有InfluxDB 2.x组件?那么我如何构建InfluxDB 2.5端点?
3条答案
按热度按时间e0bqpujr1#
不幸的是,influxdb v2仅在
influxdb-client-java
中得到完全支持。但是根据文档,您可以使用InfluxDB 1.x compatibility API继续使用influxdb-java
lib处理influxdb 2.X。ccgok5k52#
最后,我构建了一个自定义的Camel组件,为InfluxDB 2x提供本地支持。
为那些想做类似事情的人提供一条路线:
使用POM创建一个Maven项目,如下所示:
在Camel组件项目中创建以下方法(全部基于原始camel-influxdb),其中前缀
Influx2Db
可以替换为您喜欢的内容:在以下位置创建名为
<last part of your package name>
的文件:src/main/resources/META-INF/service/<package name minus last part>/<last part of your package name>
内容:
此外,在Apache Camel应用程序中,您需要在基于spring-boot-autoconfigure:influxdb的spring查找路径中使用Spring-Boot-Autoconfigure类(如果您使用Spring-Boot):
vpfxa7rd3#
最后,我在一个单独的Maven项目中构建了一个自定义的Camel组件,为InfluxDB 2x提供本地支持。
为那些想做类似事情的人提供一条路线:
使用POM创建一个Maven项目,如下所示:
在Camel组件项目中创建以下方法(全部基于原始camel-influxdb),其中前缀
Influx2Db
可以替换为您喜欢的内容:在以下位置创建名为
<last part of your package name>
的文件:src/main/resources/META-INF/service/<package name minus last part>/<last part of your package name>
内容:
此外,在Apache Camel应用程序中,您需要在基于spring-boot-autoconfigure:influxdb的spring查找路径中使用Spring-Boot-Autoconfigure类(如果您使用Spring-Boot):