更新时间:2024-03-15 GMT+08:00

服务流量管理

适用场景

流量治理是一个非常宽泛的话题,例如:

  • 动态修改服务间访问的负载均衡策略,如配置一致性哈希将流量转发到特定的服务实例上。
  • 同一个服务有两个版本在线,将一部分流量切到某个版本上。
  • 对服务进行保护,例如限制并发连接数、限制请求数、隔离故障服务实例等。
  • 动态修改服务中的内容,或者模拟一个服务运行故障等。

价值

在Istio中实现这些服务治理功能时无须修改任何应用的代码。

应用服务网格ASM基于Istio可以为管理的服务提供非侵入的流量治理能力。根据服务的协议,提供策略化、场景化的网络连接管理。在应用拓扑上对选定服务的选定端口,根据需要配置各种不同的治理规则。

优势

  • 重试:服务访问失败自动重试,从而提高总体访问成功率和质量。支持配置HTTP请求重试次数、重试超时时间和重试条件。
  • 超时:服务访问超时自动处理,快速失败,从而避免资源锁定和请求卡顿。支持配置HTTP请求超时时间。
  • 连接池:通过连接池管理,可以对四层协议配置TCP的最大连接数、连接超时时间、最大无响应次数、最短空闲时间和健康检查间隔,对七层协议配置HTTP最大请求数、最大重试次数、最大等待请求数、每连接最大请求数、连接最大空闲时间,从而防止一个服务的失败级联影响到整个应用。
  • 熔断:通过熔断配置实例被驱逐前的连续错误次数、驱逐间隔时长、最小驱逐时间、最大驱逐比例等参数,从而定期考察被访问的服务实例的工作情况,如果连续出现访问异常,则将服务实例标记为异常并进行隔离,在一段时间内不为其分配流量。过一段时间后,被隔离的服务实例会再次被解除隔离,尝试处理请求,如果还不正常,则被隔离更长的时间。从而实现异常服务实例的故障隔离和自动故障恢复。
  • 负载均衡:配置各种负载均衡策略,如随机、轮询、最少连接,还可以配置一致性哈希将流量转发到特定的服务实例上。
  • HTTP头域:灵活增加、修改和删除指定HTTP头域,包括将HTTP请求转发到目标服务之前对Headers的操作,以及将HTTP响应回复给客户端前,对Headers的操作,以非侵入方式管理请求内容。
  • 故障注入:通过对选定的服务注入中断故障、延时故障来构造故障场景,无需修改代码即可进行故障测试。