概述
在现代可观测性体系中,日志数据通常通过 Kafka 进行缓冲和分发。本文介绍如何构建一个高吞吐、可靠的 Kafka 到 ClickHouse 数据管道。
架构设计
[日志采集] → [Kafka] → [emorash] → [ClickHouse]
↓
[Elasticsearch]emorash 配置示例
[kafka]
brokers = ["kafka-1:9092", "kafka-2:9092"]
topic = "logs"
group_id = "emorash-consumer"
offset_reset = "latest"
[clickhouse]
host = "clickhouse:9000"
database = "logs"
table = "events"
batch_size = 20000
flush_interval = "5s"性能优化要点
1. **批量写入**:将小批次合并为大批次
2. **异步写入**:使用缓冲队列解耦消费和写入
3. **连接池**:复用 ClickHouse 连接
Tip
建议 batch_size 设置在 10000-50000 之间。
监控指标
curl http://localhost:9090/metrics | grep emorash