首页 > 其他分享 >Istio 熔断限流

Istio 熔断限流

时间:2023-01-19 11:11:06浏览次数:49  
标签:服务 请求 实例 配置 Istio 熔断 剔除 限流

Istio使用目标规则中的 TrafficPolicy 属性来配置熔断和限流,其中 connectionPool 属性配置限流方式,outlierDetection 配置异常检测的熔断方式。下面,来分别看一下这二者是如何配置的。

 

1.ConnectionPool 下有 TCP 和 HTTP 两个类别的配置,二者相互协作,为服务提供有关限流的配置。

TCP 相关的基础配置有maxConnections 和 connectTimeout。

maxConnections 表示到目标服务最大的 HTTP1/TCP 连接数量。它只会限制基于HTTP1.1协议的连接,不会影响基于HTTP2的连接,因为 HTTP2 协议只建立一次连接。

connectTimeout 表示建立 TCP 连接时的超时时间,默认单位是秒。超出该时间,则连接会被自动断开。

HTTP下的配置包括http1MaxPendingRequests、http2MaxRequests 和 maxRequestsPerConnection 三种。

http1MaxPendingRequests 表示HTTP 请求处于pending状态下的最大请求数,也就是目标服务最多可以同时处理多少个 HTTP 请求,默认是1024 个。

http2MaxRequests 表示目标服务最大的 HTTP2 请求数量,默认是1024。

maxRequestsPerConnection 表示每个 TCP 连接可以被多少个请求复用,如果将这一参数设置为 1,则会禁止 keepalive 特性。

 

2.OutlierDetection 下相关的配置项涉及服务的熔断机制,具体有如下几个基础配置。

consecutiveErrors 表示如果目标服务连续返回多少次错误码后,会将目标服务从可用服务实例列表中剔除,也就是说进行熔断,不再请求目标服务。当通过HTTP请求访问服务,返回码为502、503或504时,Istio 会将本次网络请求判断为发生错误。该属性配置的默认值是5,也就是说如果目标实例连续5个 http请求都返回了 5xx 的错误码,则该服务实例会被剔除,不再接受客户端的网络请求。

Interval 表示服务剔除的时间间隔,即在interval 时间周期内发生1个consecutiveErrors错误,则触发服务熔断。其单位包括小时、分钟、秒和毫秒,默认值是10秒。

baseEjectionTime 表示目标服务被剔除后,至少要维持剔除状态多长时间。这段时间内,目标服务将保持拒绝访问状态。该时间会随着被剔除次数的增加而自动增加,时间为baseEjectionTime 和驱逐次数的乘积。其单位包括小时、分钟、秒和毫秒,默认是30秒。

maxEjectionPercent 表示可用服务实例列表中实例被移除的最大百分比,默认是10%。当超出这个比率时,即使再次发生熔断,也不会将服务剔除,这样就避免了因为瞬时错误导致大多数服务实例都被剔除的问题。

minHealthPercent 表示健康模式的最小百分比,也就是所有服务实例中健康(未被剔除)的比率。当低于这一比率时,整个集群被认为处于非健康状态,outlierDetection配置相关的服务剔除熔断机制将被关闭,不再进行服务健康检查,所有服务实例都可以被请求访问,包含健康和不健康的主机。该属性的默认值是50%,并且minHealthPercent 和 maxEjectionPercent 的和一般都不超过100%。

 

标签:服务,请求,实例,配置,Istio,熔断,剔除,限流
From: https://www.cnblogs.com/muzinan110/p/17061198.html

相关文章

  • Istio可观测性(链路)
    可观测性的英文是Observability,这是伴随着云原生技术发展产生的一个新兴词汇,在传统的IT中,并没有这种说法。简单来说,可观测性是通过系统输出信息到外部,以检测系统内部的......
  • Istio 灰度发布
    金丝雀发布也被称为灰度发布,实际上就是将少量的生产流量路由到线上服务的新版本中,以验证新版本的准确性和稳定性。Istio和Kubernetes实现金丝雀发布的方式不太一样,Istio......
  • Spring Cloud Gateway 网关限流
    可用性和可靠性对于所有web应用程序和API来说都是至关重要的。当系统流量突然增加时,会影响应用程序的服务质量,甚至可能导致所有用户的服务中断。一种解决方案是为基础......
  • istio入门
    Istio在逻辑上分为数据平面和控制平面。数据平面,由一组高性能的智能代理(基于Envoy改进的istio-proxy)组成,它们控制和协调了被代理服务的所有网络通信,同时也负责收集和......
  • Spring Cloud Alibaba——Sentinel断路器与熔断降级
    前言Sentinel的熔断降级通过断路器实现,本文通过介绍熔断器的定义、如何构建熔断器、断路器校验逻辑、断路器状态转换、异常/慢调用熔断流量是如何统计等方面梳理断路器的工......
  • 常见限流算法
    简介限流顾名思义是对流量大小进行限制,防止请求数量超过系统的负载能力,导致系统崩溃,起到保护作用。现实生活中限流也随处可见,节假日出门旅行的人数会剧增,对于旅游景点来......
  • 连接sentinel控制台并实现限流
    连接sentinel控制台并实现限流☞​​博客导航​​,​​带你有序的阅读和学习!​​文章目录​​连接sentinel控制台并实现限流​​​​连接sentinel控制台​​​​依赖​​​......
  • Sentinel规则之熔断降级规则
    Sentinel规则之熔断降级规则☞​​博客导航​​,​​带你有序的阅读和学习!​​文章目录​​Sentinel规则之熔断降级规则​​​​概述​​​​降级策略​​​​降级演示​​......
  • 电气防火限流式保护器在小型人员密集场所中的应用
    安科瑞徐行德摘要:本文通过结合城市中小型人员密集场所的特点和电气防火限流式保护器的功能,阐述了该类筑物预防电气火灾事故的方法。关键词:小型人员密集场所;电气防火限流......
  • 电子设计教程42:限流软启动电路
      上一篇文章中,当使用固定的电阻限流时,电流大小受V_Cin和V_CL的差影响,安全上电瞬间的电流是最大的,随后电流按指数曲线逐渐变小。电阻值需要保证安全上电瞬间,最大电流也不......