配置istio目的规则使用回退URL而不是503



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

或者是否可以使用istio提供的离线模式响应?我认为最简单的方法是通过URL重定向到脱机模式服务URL,但可以考虑…

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

如果我理解正确的话,你是在问是否有可能只使用istio来实现这一点。


根据文档

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

和dzone.com,基督教邮报博客文章:

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

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


遗憾的是,答案是no,你不能。你必须在你的应用程序中实现它。


额外的资源:

  • 拆解故障断路
  • 当故障是一个选项时,断开断路器

最新更新