iLogtail 原有的 Elasticsearch flusher 插件存在性能短板,解决方案包含三个部分。第一,使用 Elasticsearch 的 BulkRequest 接口批量向后端发送日志数据,一个请求可以发送几百上千条日志,请求次数直接降低两三个数量级。第二,利用 Agent 在 flush 阶段之前自动生成的随机 pack id 作为 routing 参数,将同一批次的日志数据路由到同一个分片上,避免 Elasticsearch 按照自动生成的文档 ID 进行分片计算,减少不必要的计算和 IO 操作,降低负载提高吞吐量。第三,启用 goroutine 池并发向 Elasticsearch 后端发送日志数据,进一步提升发送效率。




