TL;DR:n
在集群pod上重定时后,如何回退到外部服务?
有VirtualService
将HTTP请求路由到集群pod,并在pod返回503
时重试。我需要在n
重试后将请求路由到外部服务。
是否可以在VirtualService
路由中使用x-envoy-attempt-count
头字段?
http:
- match:
- headers:
x-envoy-attempt-count:
exact: 5
还有其他选择吗?
Istio 1.9.4在重试过程中,似乎没有重新评估路由,因此永远不会选择标头匹配的路由。
坏消息。。。除非smth当前发生更改,否则这在Istio中是不可能的。已经有关于这个话题的回复了——也许你错过了。
请检查将istio-destination规则配置为使用回退URL而不是503
有一个服务网格,目前没有专门的库失败的上下文传播,失败的原因更加不透明。这并不意味着我们的应用程序不能出现故障(对于两种传输以及客户端特定错误(。我认为这对任何应用程序的协议,无论是使用特定于库的框架是否(始终遵守其试图为其履行的承诺客户。如果它发现自己无法完成预期的行动应该想办法优雅地降级。幸运的是,你不需要应用程序特定框架。大多数语言都有内置错误和异常捕获及处理。回退应该是在这些异常路径中实现。