Consul 重试和超时无法正常工作?

问题描述 投票:0回答:1

我是领事新手,但我做了很多研究,但仍然无法弄清楚为什么我的重试失败。超时也是如此。我在 ServiceRouter 中配置了所有这些,并使用 kubectl 端口转发连接到后端。我希望重试能够应用,但无论出于何种原因,即使我的后端需要 65 秒来响应,我的配置也不会触发。 这是我设置重试的方式

apiVersion: consul.hashicorp.com/v1alpha1
kind: ServiceRouter
metadata:
  name: backend-router
  namespace: consul-hofladen
spec:
  routes:
    - match:
      destination:
        service: backend
        numRetries: 5
        retryOnConnectFailure: true
        retryOn: ["5xx","gateway-error","connect-failure","refused-stream"]
        requestTimeout: 2s

我的后端响应概率为 50/50,为 503 或 200。为什么我的重试没有触发?在 Istio 中做同样的事情是没有问题的。

ServiceRouter 似乎也应用正确 enter image description here

kubernetes consul docker-desktop
1个回答
0
投票

我发现了我的错误。问题在于对如何以及何时应用这些政策的理解错误。要真正让所有这些配置发挥作用,您必须在集群内部工作。

这意味着使用 kubectl exec -it 访问容器,然后向应用配置的容器发送curl 请求。这样重试,我的所有其他问题都得到了解决。

您无法使用 Postman 发送请求并期望它能够工作。它不是。最终这是有道理的,因为服务网格主要负责集群内部的流量。

© www.soinside.com 2019 - 2024. All rights reserved.