4

我知道您可以在服务没有响应时使用 istio 来打开断路器。除了返回 a 503,是否可以重定向到不同的 URL?同样的问题,但是当原始服务返回 a500时,我们可以重定向到另一个 URL 吗?

或者是否可以让istio 提供离线模式响应?我认为最简单的方法是通过 URL 重定向到离线模式服务URL,但对想法持开放态度......

4

1 回答 1

2

我们可以重定向到另一个 URL 吗?

如果我理解正确,您会问是否可以仅使用 istio 来做到这一点。


根据文档

虽然 Istio 故障恢复功能提高了网格中服务的可靠性和可用性,但应用程序必须处理故障或错误并采取适当的回退操作。例如,当负载均衡池中的所有实例都失败时,Envoy 返回 HTTP 503 代码。应用程序必须实现处理 HTTP 503 错误代码所需的任何回退逻辑。

dzone.com,Christian Posta博客文章

Istio 提高了网格中服务的可靠性和可用性。但是,应用程序需要处理错误并采取适当的回退操作。例如,当负载均衡池中的所有实例都失败时,Envoy 将返回 HTTP 503。应用程序有责任实现处理来自上游服务的 HTTP 503 错误代码所需的任何回退逻辑。

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


可悲的是,答案是否定的,你不能。您必须在您的应用程序中实现它。


其他资源:

于 2021-01-28T13:08:55.083 回答