Istio网络重试的位置



我是Istio的新手,不是Kubernetes专家,尽管我使用过后者。

为了简单起见,假设我有两个服务,都是Java/SpringBoot。服务A监听来自外部世界的请求,服务B监听来自服务A的请求。服务B是可扩展的,并且在某些点上可能返回503。我希望服务A以可配置的非编程方式重试对服务B的调用。以下是我尝试关注的一个博客/链接,我认为它非常相似:

https://samirbehara.com/2019/06/05/retry-design-pattern-with-istio/

我有两个问题:

  1. 这可能看起来很明显,但如果我想定义一个虚拟可重试服务,我是将其添加到项目的现有application.yml文件中,还是networking.istio.io/v1alpha3要使用的其他文件?

  2. 我会在yaml/repo中为服务A或服务B定义重试配置吗?无论哪种方式,我都能想出构建Istio的理由。

如果可扩展服务返回503,那么添加一个虚拟服务(就像serviceB的博客示例一样(并使serviceA连接到virtualServiceB是有意义的,CCD_4将重试ServiceB

现在,要使其工作(从集群内(:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: serviceB
spec:
hosts:
– serviceB
http:
– route:
– destination:
host: serviceB
retries:
attempts: 3
perTryTimeout: 2s

这些线路:

hosts:
– serviceB

将告诉默认的Istio网关(mesh(不将所有流量路由到serviceB,而是先路由到virtualServiceB,然后再路由到CCD-8。然后您将从virtualServiceB重试到serviceB

希望这能帮助

相关内容

  • 没有找到相关文章

最新更新