优化 Elasticsearch (ES) 的写入性能(Indexing Performance)是一个系统工程,涉及客户端策略、索引设置、集群配置以及硬件层面。 以下是按优先级和影响程度分类的优化指南: --- 1. 客户端策略优化 (Client-side) 这是最容易实施且效果最明显的优化手段。 使用 Bulk API (批量写入) 原理:减少网络开销和 HTTP 请求头的解析时间,减少 Lucene 的 commit/flush 次数。 建议:不要单条写入。一个 Bulk 请求的大小建议在 5MB 15MB 之间。具体的条数取决于单条数据的大小(通常几千条)。可以通过逐步增加大小测试吞吐量瓶颈。 多线程/多进程并发写入 原理:ES 是分布式的,单线程无法压榨集群性能。 建议:使用多线程向集群发送 Bulk 请求。观察集群的 CPU 和 I/O 使用率,直到达到瓶颈。 使用自动生成的 ID 原理:如果你指定 ID(如 ),ES 必须先查询该 ID 是否存在以判断是更新还是插入(Check-then-Update)。 建议:如果业务允许,让 ES 自动生成 ID(Post 请...