Loading
close

连接池限制

time 更新时间:2024-02-05 14:41:14

本章节主要介绍在服务网格,如何实现连接池限制能力

操作场景

随着网站业务规模的增大,对网站的访问请求并发量开始增加,网站业务人员计划限制服务最大并发数,保证服务运行健壮性

部署

为模拟”高并发”请求场景,首先通过提交以下 YAML 部署 client 服务,模拟对 user 服务的高并发请求

apiVersion: v1
kind: Pod
metadata:
  name: client
  namespace: base
spec:
  restartPolicy: Never
  containers:
  - image: docker.yylt.ml/yylt/tool:202307061000
    imagePullPolicy: IfNotPresent
    name: wrk
    command:
    - wrk
    - -c 
    - "5"
    - -t
    - "5"
    - http://server.base.svc

此时对于访问 user 服务没有最大并发数限制,所有请求均可访问成功。通过控制台 client deployment 查看 client pod 日志可以发现均成功

限流

配置 user 服务的 Destination Rule 限制最大并发数为1

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: user
  namespace: base
spec:
  host: user
  trafficPolicy:
    connectionPool:
      http:
        http1MaxPendingRequests: 1
        http2MaxRequests: 1
        maxRequestsPerConnection: 1
  exportTo:
    - '*'

此时通过控制台client deployment查看client pod日志可以发现只有一个成功。

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品