【问题标题】:Fallback to the external service after the n retries on pods in the cluster在集群中的 pod 重试 n 次后回退到外部服务
【发布时间】:2021-07-14 17:06:51
【问题描述】:

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 在重试期间似乎没有重新评估路由,因此标头匹配的路由永远不会被选中。

【问题讨论】:

标签: kubernetes istio


【解决方案1】:

坏消息...除非当前有所改变,否则 Istio 无法做到这一点。 已经有关于这个话题的回复 - 也许你错过了。

请检查 Configure istio destination rule to use a fallback URL instead of 503

使用服务网格,目前没有专门的库 失败上下文传播,失败原因更加不透明。这个 并不意味着我们的应用程序不能采取回退(对于运输 和客户特定的错误)。我认为这对 任何应用程序的协议,无论是使用特定于库的框架 或不)始终遵守它试图为它遵守的承诺 客户。如果它发现它不能完成它的预期动作,它 应该想办法优雅地降级。幸运的是,您不需要 特定于应用程序的框架。大多数语言都有内置的 错误和异常捕获和处理。后备应该是 在这些异常路径中实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    相关资源
    最近更新 更多