我将日志存储到我的React式spring应用程序的ElasticSearch中。ElasticSearch中出现以下错误:
elasticsearch异常[type=es\u rejected\u execution\u exception,reason=rejected execution of processing of[129010665][indices:data/write/bulk[s] [p]]:请求:bulkshardrequest[[logs-dev-2020.11.05][1]],包含[索引{[logs-dev-2020.11.05][\u doc][0d1478f0-6367-4228-9553-7d16d2993bc2],源[n/a,实际长度:[4.1kb],最大长度:2kb]}]和刷新,目标分配id:wwkztubpsaapc3c-jg2z2g,主项:1在esthreadpoolexecutor上[name=10-110-23-125-common-elasticsearch-apps-dev-v1/write,queue capacity=200,org.elasticsearch.common.util.concurrent。esthreadpoolexecutor@6599247a[正在运行,池大小=2,活动线程=2,排队任务=221,完成的任务=689547]]]
我的索引设置:
{
"logs-dev-2020.11.05": {
"settings": {
"index": {
"highlight": {
"max_analyzed_offset": "5000000"
},
"number_of_shards": "3",
"provided_name": "logs-dev-2020.11.05",
"creation_date": "1604558592095",
"number_of_replicas": "2",
"uuid": "wjIOSfZOSLyBFTt1cT-whQ",
"version": {
"created": "7020199"
}
}
}
}
}
我浏览过这个网站:
https://www.elastic.co/blog/why-am-i-seeing-bulk-rejections-in-my-elasticsearch-cluster
我原以为在线程池中调整“写入”大小可以解决问题,但在站点中不建议这样做,如下所示:
因此,强烈建议不要调整队列大小,因为这就像在问题上贴上临时的创可贴,而不是实际解决根本问题。
那么我们还能做些什么来改善这种状况呢?
其他信息:
ElasticSearch7.2.1版
集群健康状况良好,它们是集群中的3个节点
索引将每天创建,每个索引有3个碎片
1条答案
按热度按时间pw9qyyiw1#
虽然您是对的,增加线程池大小并不是一个永久性的解决方案,但您会很高兴地知道,elasticsearch本身在一次小的版本升级中就将写线程池(用于批量请求)的大小从200增加到了10k。请看es 7.8中200的尺寸,而es 7.9中10k的尺寸。
如果您使用的是ES7.x版本,那么您还可以将大小增加到10k(如果不是10k),然后至少增加1k(以避免拒绝请求)。
如果你想要一个合适的解决方案,你需要做以下几件事
找出它是否是一致的,或者只是一些短时间的写请求突发,而在一段时间内被清除。
如果它是一致的,那么你需要弄清楚是否所有的写优化都到位了,请参考我的简短提示来提高索引速度。
请参阅,如果已达到数据节点的全部容量,如果是,请扩展集群以处理增加的/合法的负载。