Как исправить время ожидания чтения в Elasticsearch

я использовал Elasticsearch-1.1.0 для индексации твитов. Процесс индексирования в порядке. Затем я обновил версию. Теперь я использую Elasticsearch-1.3.2, и я получаю это сообщение случайным образом:

Exception happened: Error raised when there was an exception while talking to ES.
ConnectionError(HTTPConnectionPool(host='127.0.0.1', port=8001): Read timed out. (read timeout=10)) caused by: ReadTimeoutError(HTTPConnectionPool(host='127.0.0.1', port=8001): Read timed out. (read timeout=10)).

снимок рандоме:

Happened --33s-- Happened --27s-- Happened --22s-- Happened --10s-- Happened --39s-- Happened --25s-- Happened --36s-- Happened --38s-- Happened --19s-- Happened --09s-- Happened --33s-- Happened --16s-- Happened 

--XXs-- = after XX seconds

может кто-нибудь указать, как исправить Read timed out проблема?

спасибо.

3 ответов


трудно дать прямой ответ, так как ошибка, которую вы видите, может быть связана с клиентом, который вы используете. Однако решение может быть одним из следующих:

1.Увеличьте тайм-аут по умолчанию глобально при создании клиента ES, передав параметр timeout. Пример в Python

es = Elasticsearch(timeout=30)

2.Установить тайм-аута по запросу клиента. Взято с Elasticsearch в Python с документами ниже.

# only wait for 1 second, regardless of the client's default
es.cluster.health(wait_for_status='yellow', request_timeout=1)

вышеуказанное даст кластеру некоторые дополнительное время для ответа


попробуйте это:

es = Elasticsearch(timeout=30, max_retries=10, retry_on_timeout=True)

это может не полностью избежать ReadTimeoutError, но это минимизирует их.


для чего это стоит, я обнаружил, что это, похоже, связано с состоянием сломанного индекса.

очень сложно надежно воссоздать эту проблему, но я видел ее несколько раз; операции выполняются как обычно, за исключением некоторых, которые периодически, похоже, зависают ES (в частности, обновляя индекс).

удаление индекса (curl -XDELETE http://localhost:9200/foo) и переиндексация с нуля исправила это для меня.

Я рекомендую периодически очищать и переиндексировать, если вы видите это поведение.