#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?