1

我正在使用 QuestDb 并发布类似的记录

influxDB = InfluxDBFactory.connect("http://localhost:9000", username, password);
influxDB.setDatabase(database);
influxDB.enableBatch(BatchOptions.DEFAULTS);
influxDB.write(Point.measurement(TABLE_NAME)
                .addField("ID",ir.getid())
                .addField(....)
                .build());

我们不发送时间戳,因此 QuestDb 插入服务器时间并使用一个工作线程服务器选项运行它。

每个 ID 都是唯一的,但是当我查询 QuestDb 时,有时会看到 5 条具有相同 ID 的记录,就好像 QuestDb 创建了重复项一样。

这里有什么问题?

重复项具有所有相同的值,除了时间戳彼此之间大约相差 10 秒。

4

1 回答 1

1

QuestDb 不支持 HTTP 连接,而是支持 TCP。

可能发生的情况是您打开到端口的 HTTP 连接,它打开底层 TCP 套接字连接并发送 HTTP 标头,QuestDb 将标头视为无效消息并解析有效的 Influx 协议行。然后 Influx 库没有收到任何响应,并在某个配置的时间间隔后再次重新发送消息,然后再次......在这里你得到了重复

切换到 TCP 连接,不要使用 Influx 库使用https://questdb.io/docs/develop/insert-data/或 telegraf 之类的方式发送消息,或使用 UDP

于 2021-02-12T00:10:58.963 回答