流量治理
流量治理功能包括负载均衡算法设置、会话保持、连接池管理、熔断配置、延迟故障注入、中断故障注入。
负载均衡设置
进入服务网格下流量治理页面,双击拓扑图中的微服务进流量治理配置。
- ROUND_ROBIN:轮询算法,如果未指定,则默认采用这种算法。
- LEAST_CONN:最少连接算法,算法实现是从两个随机选择的服务后端选择一个活动请求数较少的后端实例。
- RANDOM:从可用的健康实例中随机选择一个。

- 基于HTTP头部:根据HTTP header中的内容获取哈希。
- 基于Cookie键:根据Cookie中的内容获取哈希。
- 基于SourceIp:根据源 IP 中的内容获得哈希。

连接池管理
- maxConnections:最大连接数,表示为上游服务的所有实例建立的最大连接数,默认是1024,属于TCP层的配置,对于HTTP,只用于HTTP/1.1。
- maxRetries:最大重试次数,默认是3,表示服务可以执行的最大重试次数。如果调用端因为偶尔抖动导致请求直接失败,则可能会带来业务损失,一般建议配置重试,若重试成功则可正常返回数据,只不过比原来响应要慢一些,但重试次数太多会影响业务性能,要谨慎使用。
- http1MaxPendingRequests:最大等待HTTP请求数,默认值是1024,只适用于HTTP/1.1的服务,因为HTTP/2协议的请求在到来时会立即复用连接,不会在连接池等待。
- maxRequestsPerConnection:每个连接的最大请求数,HTTP/1.1和HTTP/2连接池都遵循此参数。如果没有设置,则没有限制。设置为1时表示每个连接只处理一个请求,也就是禁用了Keepalive。
- connectTimeout:TCP连接超时时间,主机网络连接超时,可以改善因调用服务变慢导致整个链路变慢的情况。

熔断配置
- consecutiveErrors:连续错误响应个数,周期内连续出现状态码为500及以上的个数,超过该值后,实例将被移除连接池,默认值为5。
- interval:检查周期,间隔多久扫描一次当前服务的后端实例。
- maxEjectionPercent:隔离实例比例,上游实例中允许被移除的实例的最大百分比,默认值为10%。
- baseEjectionTime:最短隔离时间,实例第一次被隔离的时间,之后每次隔离时间为隔离次数与最短隔离时间的乘积。这样的实现,让系统能够自动增加不健康上游服务实例的隔离时间,默认值为30s。
- minHealthPercent:最小健康实例比例,默认值是50%,当健康实例百分比低于这个阈值,外部检测将禁用,同时proxy将流量路由到全部实例,包含健康和不健康的实例。通常minHealthPercent+maxEjectionPercent<= 100%。

故障注入
-
fixedDelay:延时,表示延迟时间,单位可以是毫秒、秒、分钟和小时,要求时间必须大于1毫秒。
-
percentage:故障百分比,配置的延迟故障作用在多少比例的请求上,通过这种方式可以只让部分请求发生故障。

-
httpStatus:状态码,表示终止时返回的HTTP状态码。
-
percentage:故障百分比,配置的中断障作用在多少比例的请求上,通过这种方式可以只让部分请求发生故障。
