Кластер Elasticsearch выдает ошибку READTIMEOUT

#python-3.x #elasticsearch #elasticsearch-dsl #elasticsearch-dsl-py

Вопрос:

У меня есть кластер elasticsearch с 3 узлами. вот вывод статистики:

 {"_nodes": {"total": 3, "successful": 3, "failed": 0}}  

Индекс состоит из 3 осколков и 2 реплик.

Я использую elasticsearch-dsl==7.4.0 в приложении python django.

 ELASTIC = { "hosts": ["hostname1:9200","hostname2:9200","hostname3:9200"], "timeout": 10, "max_retries": 0, } connections.configure(default=ELASTIC)  

иногда сохранение для индексирования или поиска elasticsearch возвращает это исключение:

 elasticsearch.exceptions.ConnectionTimeout: ConnectionTimeout caused by - ReadTimeoutError(HTTPSConnectionPool(host='hostname2', port=9200): Read timed out. (read timeout=10))  

почему это происходит? кластер в elasticsearch должен быть очень доступным, но в моем случае, когда один из запросов к узлам «истекает», возникает исключение.

Комментарии:

1. это тяжелый вопрос? попробуйте включить опцию медленного запроса при эластичном ведении журнала и посмотрите, является ли причиной медленный запрос.

2. что показывают ваши журналы Elasticsearch?