istio 熔断器连接池 yaml 解释

具体参考:https://blog.csdn.net/qq_44140067/article/details/134964739

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: istio-dr
  namespace: istio-ns
spec:
  host: istio-service.istio-ns.svc.cluster.local
  subsets:
  - labels:
      version: v1
    name: v1
  - labels:
      version: v2
    name: v2
  # 以下内容为 熔断器 的相关配置
  trafficPolicy: # 流量策略配置
    connectionPool: # 连接池配置
      http: # http 流量的连接池配置
        h2UpgradePolicy: DO_NOT_UPGRADE # http/2 升级策略
        http1MaxPendingRequests: 3 # http 最大挂起请求数量
        http2MaxRequests: 3 # 每个连接的最大请求数量
        idleTimeout: 3s # 每个连接的最大请求数量
        maxRequestsPerConnection: 3 # 每个连接的最大请求数量
        maxRetries: 3 # 最大重试次数
      tcp: # tcp 流量的连接池配置
        connectTimeout: 5s # 连接的超时时间
        maxConnections: 3 # 每个连接池的最大连接数
        tcpKeepalive: # tcp keepalive 的配置
          interval: 3s # keepalive 探测的间隔时间
          probes: 3 # keepalive 探测的次数
          time: 3s # keepalive 探测的超时时间

http 配置

h2UpgradePolicy:是指在与目标服务建立连接时,客户端是否尝试将连接升级为使用 HTTP/2 协议,常见的 h2UpgradePolicy 值包括:

  • UPGRADE:允许升级连接为 HTTP/2。客户端可以尝试将连接升级为使用 HTTP/2 协议
  • DO_NOT_UPGRADE:禁止升级连接为 HTTP/2。客户端将始终使用 HTTP/1.x 协议与目标服务进行通信

http1MaxPendingRequests:当客户端与服务器建立连接后发送请求,在服务器处理请求之前,请求被挂起等待处理。在这个等待处理的期间,其他请求可能会到达服务器并被挂起。通过限制最大挂起请求数量,可以当服务器达到了最大挂起请求数量限制,后续的请求将无法挂起,而是可能会被服务器拒绝或返回错误。这可以帮助防止服务器过载或过度消耗资源

http2MaxRequests :在单个连接上处理的最大请求数量,HTTP/2 是一种现代的网络传输协议,它引入了多路复用的概念,允许在单个 TCP 连接上同时发送和接收多个请求和响应。通过复用连接并在一个连接上处理多个请求,HTTP/2 可以提高性能和效率

Tips:没有设置 http1 的最大请求数量限制是因为 HTTP/1.x 协议使用的是传统的请求-响应模型,每个请求都需要单独的 TCP 连接

idleTimeout:表示连接在处于空闲状态时允许的最长时间,如果连接在指定的时间内没有活动,它将被视为空闲并可能被关闭或终止。该字段针对的是 http1,因为当 http1 设置为 keep-alive 后,一个连接可以发送多个请求,当没有请求并超过设置的空闲时间后,连接会关闭或重置连接

maxRequestsPerConnection:用于控制连接上允许的最大请求数量的配置项。它指定了在一个持久连接(Keep-Alive)上可以发送的最大请求数量

Tips:maxRequestsPerConnectionhttp2MaxRequests 分别设置 http1 和 http2 单次连接的最大请求数量

maxRetries:用于指定在发生错误或失败时,允许的最大重试次数。通过设置最大重试次数,可以当请求出错时(由于网络波动等非可控因素)自动重新执行操作,以增加操作的成功率和容错性

tcp 配置

主要讲一下 tcpKeepalive 字段:
interval:探测间隔时间,当检测到连接空闲并达到探测间隔时间,服务器会发送空闲探测报文
probes:探测次数,每隔探测间隔时间时会发送一次探测报文
time:探测超时时间,服务器发送空闲探测报文,在超过探测超时时间未收到返回信息会立即重新发送探测报文,并算一次探测次数

你可能感兴趣的:(istio,istio,云原生)