本文系作者原创,转载请注明来源:http://laowubiji.com/index.php/2023/02/03/loki_write_read1/
之前笔者部署的模式是单个Loki write +单个 loki querier,结构如下图所示。这种模式下,数据接收没有问题,但是数据查询会明显很慢,尤其对于大规模数据量会显得尤为明显。
![](https://i-blog.csdnimg.cn/blog_migrate/6e373c3690b2061748429680b40d045c.png)
笔者近期经过多方查找资料,重新部署了单个Loki write + 单个Loki read的模式。该模式参考了Loki官方文档中的如下架构:
![](https://i-blog.csdnimg.cn/blog_migrate/71a581d31289effb4bc7fb3ac30f0882.png)
本文中采用最简单的方式,一个write+一个read,简单架构如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/d1af29b342c6f4b377c2d3f8cb2b3949.png)
需要注意:loki read模式下,配置文件中必须有ruler相关配置,否则会报错。
另外就是需要指定
frontend_worker: match_max_concurrent: true grpc_client_config: max_send_msg_size: 900000000000
否则可能会因为message过大而报错。
此模式下的查询效率比 单Loki write+单loki querier显著提升,快了大约十几倍,而且时间跨度可以支持到2天左右。后续还有继续提升的空间。