2016-02-29 51 views
0

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

回答

1

好吧,它是这样的。 Elasticsearch拥有每个模块的线程池队列体系结构。 这里的模块可以是搜索,批量,索引或任何类型的。 现在让我们假设线程池大小为4,队列大小为20. 如果在线程池中有空闲线程时发出请求,他将接管工作。 如果线程池中没有提供线程,则工作在队列中排队。 每当一个线程获得空闲时,他就会回来并接管该任务。 现在,如果队列已满,则任务将被503 HTTP代码拒绝。