我是Istio的新手,不是KubernetesMaven,尽管我使用过后者。
为了简单起见,假设我有两个服务,都是Java/Sping Boot 。服务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上有其他文件?
1.我应该在yaml/repo中为服务A或服务B定义重试配置吗?我可以想到构建Istio的原因。
1条答案
按热度按时间z9ju0rcb1#
如果可伸缩服务返回
503
,则有必要像serviceB
的博客示例那样添加一个虚拟服务,并使serviceA
连接到virtualServiceB
,后者将重试ServiceB
现在,为了使其工作(从集群内部):
字符串
这些行:
型
会告诉默认的Istio网关(网格)不将所有流量路由到
serviceB
,而是先路由到virtualServiceB
,然后再路由到ServiceB
。然后,您将从virtualServiceB
重试到serviceB
。希望这对你有帮助