如果我在 table 上进行大量读取操作,如何确保我可以保留摄取客户端 运行?

How do I make sure I can keep ingestion client running if I have heavy read operations on a table?

我正在使用 influx line 以恒定的高速率将记录插入 Questdb 中的 table。我连接了多个执行读取操作的 postgres 客户端,其中一些是 Grafana 仪表板,它们在 table 上进行了一些繁重的聚合。看起来我在刷新仪表板时遇到了一些问题:

... t.LineTcpConnectionContext [31] queue full, consider increasing queue size or number of writer jobs

有没有办法确保我不会像错误中提到的那样踢出插入客户端或增加队列?

如果您有一个客户端通过 TCP 编写 Influx 线路协议,则可以有一个专用工作线程用于此目的。您可以设置的配置键是 line.tcp.worker.count,这应该在 configuration file 中或通过环境变量进行设置。在 server.conf 中设置一个专用线程如下所示:

line.tcp.worker.count=1