2016-02-29 58 views
0

我們知道如果多個客戶端請求ES服務器會導致ES線程池已滿,那麼新的請求將被放入隊列中。我想知道這個架構是Request->ES Server(Queue->Thread)Request->ES Server(Thread->Queue)。 換句話說,請求將首先放在ES隊列中,然後ES線程選擇它進行操作,或者ES線程直接接受請求並進行操作,而當線程池已滿時,則將新請求放入隊列中。 或者說是隊列後面的線程或線程。ElasticSearch的搜索隊列在哪裏

回答

1

好吧,它是這樣的。 Elasticsearch擁有每個模塊的線程池隊列體系結構。 這裏的模塊可以是搜索,批量,索引或任何類型的。 現在讓我們假設線程池大小爲4,隊列大小爲20. 如果在線程池中有空閒線程時發出請求,他將接管工作。 如果線程池中沒有提供線程,則工作在隊列中排隊。 每當一個線程獲得空閒時,他就會回來並接管該任務。 現在,如果隊列已滿,則任務將被503 HTTP代碼拒絕。