我可以向ElasticSearch集群发送多少个并发请求?

时间:2014-10-20 14:42:14

标签: elasticsearch

我想向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

1 个答案:

答案 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个任务。当一个请求进来并且没有线程来处理它时,请求被放入队列中等待。