Получите соединение из пула - Envoy

Мне нужно получить соединение из пула, чтобы подключиться к восходящему потоку, но иногда возникают проблемы 503. Я хотел бы знать первопричину этого

https://github.com/envoyproxy/envoy/blob/master/source/common/router/router.cc

Http::ConnectionPool::Instance* conn_pool = getConnPool();
  if (!conn_pool) {
    sendNoHealthyUpstreamResponse();
    return Http::FilterHeadersStatus::StopIteration;
  }

Это часть кода, вызывающая ошибку 503. Я пытался повторить попытку с помощью цикла while фиксированное количество раз, но все еще сталкивался с ошибкой. Может ли кто-нибудь помочь найти первопричину или как я могу с этим справиться?

РЕДАКТИРОВАТЬ: Я подозреваю, что одна из возможных причин заключается в том, что слив происходит слишком часто на стороне посланника. Итак, есть ли способ контролировать Drain_type продолжительности, в течение которой происходит слив?

Я следил за этой документацией (https://www.envoyproxy.io/docs/envoy/latest/api-v1/listeners/listeners.html?highlight=draining%20modify_only), чтобы изменить тип стока со значения по умолчанию на modify_only.

Но столкнувшись с этой ошибкой:

error initializing configuration '/etc/envoy-config.json': JSON at lines 3-57 does not conform to schema.
 Invalid schema: #
 Schema violation: additionalProperties
 Offending document key: #/drain_type

person Nagireddy Hanisha    schedule 15.06.2018    source источник


Ответы (1)


Одно из решений, которое я пробовал, заключалось в увеличении параметра Drain_timeout до большего значения, например 20 секунд, вместо использования значения по умолчанию, равного 5 секундам. Это значительно сократило количество 503, которые я использую прямо сейчас, в два раза. Другая сторона этого пока неизвестна .. Каковы возможные побочные эффекты, которые могут возникнуть с этой настройкой, еще предстоит изучить, хотя она решает цель на данный момент. Любые предложения / комментарии / решения приветствуются :)

person Nagireddy Hanisha    schedule 19.06.2018