我需要从池连接到上游连接,但偶尔会遇到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
答案 0 :(得分:0)
我尝试过的一个解决方案是将drain_timeout增加到更大的值,例如20秒,而不是将默认值设置为5秒。这大大减少了我现在所达到的503的数量为2倍。另一方面仍然是未知的。即使这个设置有可能产生的副作用还有待探索正在解决目前的目的。 欢迎任何建议/意见/解决方案:)