我需要从池中获取连接以连接到上游,但偶尔会遇到 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)将drain_type从默认更改为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