我想向ElasticSearch集群发送多个批量操作请求,我遇到了这个问题EsRejectedExecutionException[rejected execution (queue capacity 50) on org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction
我有一个包含4个ElasticSearch实例(版本1.3.4)的集群,当我发送此请求以获取其批量操作线程池大小的数量时:
GET /_cat/thread_pool?v&h=host,bulk.active,bulk.queueSize
我得到了
host bulk.active bulk.queueSize
1D4HPY1 0 50
1D4HPY2 0 50
1D4HPY3 0 50
1D4HPY4 0 50
那么我可以向该群集发送多少个同时批量操作请求? 50 or 200
?
答案 0 :(得分:4)
我建议您查看this section from the documentation。
此外,当您说“可以发送的同时请求”时,您需要更具体,因为正如您在上面的页面中看到的那样,有各种线程池可以处理各种作业。您在帖子中举例说明了“批量”操作。
在我看来,正确的“批量”请求以查看同时运行的线程数(根据this piece of documentation)是GET /_cat/thread_pool?v&h=host,bulk.queueSize,bulk.min,bulk.max
。因此,您在线程池中允许bulk.max
个活动线程,队列中有bulk.queueSize
个任务。当一个请求进来并且没有线程来处理它时,请求被放入队列中等待。