【问题标题】:Duplicate records when using Influx line protocol with QuestDb将 Influx 线路协议与 QuestDb 一起使用时出现重复记录
【发布时间】:2021-02-10 21:44:12
【问题描述】:

我正在使用 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 秒。

【问题讨论】:

    标签: questdb


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      相关资源
      最近更新 更多