文档首页/ 云数据迁移 CDM/ 常见问题/ 故障处理类/ 写ES报timeout waiting for connection from pool错误怎么解决?
更新时间:2023-06-21 GMT+08:00

写ES报timeout waiting for connection from pool错误怎么解决?

问题描述

写ES报timeout waiting for connection from pool,且日志中输出多个es_rejected_execution_exception。

故障分析

从cerebro界面看到索引只有一个分片。但新建一个索引设成3个分片也是一样会报es_rejected_execution_exception。

继续定位发现记录几乎都写入到了一个分片中。至此问题清楚。是因为产生了热点。

解决方案

用户在迁移时有选择主键,也就是用它来替代 _id。计算出来的shard属同一个。

1. 建议用户不选主键,让es自动生成_id, 这样获的hash值比较分散。

2. 如果用户的应用必须用自有主键替代_id,则只能建议用性能更好的ES集群。