说明: 1.maxConnections(最大连接数为1)、http1MaxPendingRequests(最大等待请求数为1),如果连接和并发请求数超过1个,那么该服务就会触发限流规则 2.http1MaxPendingRequests: http 请求挂起状态的最大请求数 3.outlierDetection.consecutiveErrors: 拒绝连接的最大失败次数 4.outlierDetection.interval: 触发熔断的时间间隔,在 interval 时间间隔内,达到 consecutiveErrors 即触发熔断 5.outlierDetection.baseEjectionTime: 熔断时长 6.maxEjectionPercent: 熔断连接最大百分比
发现25%的请求成功,75%的请求失败,限流成功,重复请求还是可以成功的
此时重复请求,发现总是失败,没有成功的情形,触发了熔断,由于我们设置熔断时间3分钟,我们等3分钟后,再重试,就有成功的情形,测试成功
apiVersion: networking.istio.io/v1alpha3 kind: ServiceEntry metadata: name: baidu-entry spec: hosts: - "www.baidu.com" ports: - number: 80 name: http protocol: HTTP location: MESH_EXTERNAL resolution: DNS
sudo kubectl apply -f service-entry-baidu.yaml -n netistiodemo sudo kubectl get se -n netistiodemo