ElasticSearch中的搜索队列在哪里

时间:2016-02-29 00:00:32

标签: elasticsearch

我们知道如果多个客户端请求ES服务器会导致ES线程池满,那么新请求将被放入队列中。我想知道架构是Request->ES Server(Queue->Thread)还是Request->ES Server(Thread->Queue)。 换句话说,请求将首先放在ES队列中,然后ES线程选择它进行操作或ES线程直接接受请求并操作,而线程池已满,然后将新请求放入队列。 或者说是队列后面的队列后面的队列。

1 个答案:

答案 0 :(得分:1)

好吧就是这样。 Elasticsearch每个模块都有一个线程池队列架构。 这里的模块可以是搜索,批量,索引或任何类型的。 现在假设线程池大小为4,队列大小为20。 当请求到来时,如果线程池中有一个空闲线程,他就会开始工作。 如果线程池中没有feed线程,则工作将在队列中排队。 每当一个线程获得自由时,他就会回来并接受该任务。 现在,如果队列已满,则使用503 HTTP代码拒绝该任务。