文档章节

istio 处理失败 (理论)

xiaomin0322
 xiaomin0322
发布于 2018/07/18 14:37
字数 905
阅读 29
收藏 0

Envoy提供了一套开箱即用的选择加入故障恢复功能,可以通过应用程序中的服务进行利用。功能包括:

  1. 超时

  2. 具有超时预算和重试之间的可变抖动的有界重试

  3. 限制并发连接数和对上游服务的请求

  4. 对负载平衡池的每个成员进行主动(定期)运行状况检查

  5. 细粒度断路器(被动健康检查) - 在负载平衡池中按实例应用

可以通过Istio的流量管理规则在运行时动态配置这些功能。

重试之间的抖动最小化重试对重载上游服务的影响,而超时预算确保调用服务在可预测的时间范围内获得响应(成功/失败)。

主动和被动运行状况检查(上面的4和5)的组合可以最大限度地减少在负载平衡池中访问不健康实例的可能性。当与平台级运行状况检查(例如Kubernetes或Mesos支持的运行状况检查)结合使用时,应用程序可以确保可以快速清除不健康的容器/容器/ VM,从而最大限度地减少请求失败和延迟影响。

这些功能共同使服务网格能够容忍故障节点并防止本地故障与其他节点级联不稳定。

微调

Istio的流量管理规则允许运营商为每个服务/版本设置故障恢复的全局默认值。但是,服务的使用者还可以通过特殊的HTTP标头提供请求级覆盖来覆盖超时重试默认值。使用Envoy代理实现,标题分别为x-envoy-upstream-rq-timeout-msx-envoy-max-retries

常问问题

问:在Istio中运行时,应用程序是否仍能处理故障?

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

问:Envoy的故障恢复功能是否会破坏已经使用容错库的应用程序(例如Hystrix)?

不,特使对应用程序完全透明。Envoy返回的故障响应无法与进行呼叫的上游服务返回的故障响应区分开来。

问:在使用应用程序级库和Envoy的同时如何处理失败?

给定相同目标服务的两个故障恢复策略(例如,两个超时 - 一个在Envoy中设置,另一个在应用程序的库中),当发生故障时将触发两个更严格的限制。例如,如果应用程序为服务的API调用设置了5秒超时,而运算符配置了10秒超时,则应用程序的超时将首先启动。同样,如果Envoy的断路器在应用程序的断路器之前触发,那么对该服务的API调用将从Envoy获得503。

https://istio.io/docs/concepts/traffic-management/handling-failures/

© 著作权归作者所有

共有 人打赏支持
xiaomin0322
粉丝 124
博文 3609
码字总数 175894
作品 0
上海
架构师
私信 提问
istio 服务发现和负载平衡(理论)

此页面描述了Istio负载如何平衡服务网格中服务实例的流量。 服务注册: Istio假定存在服务注册表以跟踪应用程序中服务的pod / VM。它还假定服务的新实例自动注册到服务注册表,并自动删除不健...

xiaomin0322
2018/07/18
0
0
微服务运维减负:Istio Service Mesh原理+实战

作者介绍 王青,JFrog中国首席架构师,曾在新浪、爱奇艺、IBM、HPE、VIPKID从事架构研发与咨询,曾在中兴通讯、宜人贷、顺丰、易保科技等大型企业从事DevOps落地。专注于微服务架构、持续集成...

DBAplus社群
2018/04/25
0
0
istio 监控,遥测 (理论)

Istio提供了一种灵活的模型来强制执行授权策略并收集网格中服务的遥测。 基础架构后端旨在提供用于构建服务的支持功能。它们包括诸如访问控制系统,遥测捕获系统,配额执行系统,计费系统等之...

xiaomin0322
2018/07/18
0
0
istio源码分析之pilot-discovery模块分析

本文分析的istio代码版本为0.8.0,commit为0cd8d67,commit时间为2018年6月18日。 本文为之一: Service Mesh深度学习系列part1—istio源码分析之pilot-agent模块分析 Service Mesh深度学习系...

xiaomin0322
2018/07/23
0
0
istio中的流量管理的核心组件是Pilot(理论)

用于Istio中的流量管理的核心组件是Pilot,它管理和配置在特定Istio服务网格中部署的所有Envoy代理实例。它允许您指定要用于在Envoy代理之间路由流量的规则,以及配置故障恢复功能(如超时,...

xiaomin0322
2018/07/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ZStack--工作流引擎

在IaaS软件中的任务通常有很长的执行路径,一个错误可能发生在任意一个给定的步骤。为了保持系统的完整性,一个IaaS软件必须提供一套机制用于回滚先前的操作步骤。通过一个工作流引擎,ZStac...

ZStack社区版
9分钟前
0
0
Eclipse 安装lombok

1.首先打开lombok官网:https://projectlombok.org/ 2.选择下载 3.使用java -jar 运行jar包(一般情况下双击即可) 4.安装 5.重启IDE...

hengbao5
14分钟前
1
0
混合式开发框架资料汇总

1.quickhybrid 2.kerkee 3.Hybrid

IT追寻者
21分钟前
0
0
PyCharm入门教程——基本编辑程序

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
23分钟前
0
0
分布式、高并发、多线程

分布式 分布式是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。包括但不限于:分布式文件系统,分布式缓存,分布式数据库,分布式计算。 分布式的实现有两种形式: 水平扩展:...

细节探索者
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部