上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1.3 调试能力
Istio具有对流量进行调试的能力,包括故障注入和流量镜像。对流量进行调试可以让系统具有更好的容错能力,也方便用户在问题排查时通过调试快速定位原因所在。
2.1.3.1 故障注入
简单来说,故障注入就是在系统中人为地设置一些故障,用来测试系统的稳定性和系统恢复的能力。比如,给某个服务注入一个延迟,使其长时间无响应,并检测调用方是否能处理这种超时而自身不受影响(如果调用方能及时终止对故障发生方的调用,就能避免自己被拖慢,或者让故障扩展的情况)。
Istio支持注入两种类型的故障:延迟和中断。延迟是模拟网络延迟或服务过载的情况;中断是模拟上游服务崩溃的情况,通过HTTP的错误码和TCP连接失败来表现。在Istio中实现故障注入很方便,在路由配置中添加fault关键字即可。
2.1.3.2 流量镜像
流量镜像也被称为影子流量,通过复制一份请求并把它发送到镜像服务中,从而实现流量的复制功能。流量镜像的主要应用场景有以下几种:最主要的就是进行线上问题排查。在一般情况下,因为系统环境,特别是数据环境、用户使用习惯等问题,用户很难在开发环境中模拟出在真实的生产环境中出现的棘手问题,同时生产环境也不能记录太过详细的日志,因此很难定位到问题。有了流量镜像,用户就可以把真实的请求发送到镜像服务中,再打开debug日志就可以查看详细的信息了。除此之外,还可以通过流量镜像观察生产环境的请求处理能力,比如,在镜像服务中进行压力测试;也可以将复制的请求信息用于数据分析。流量镜像在Istio中实现起来也非常简单,只需在路由配置中添加mirror关键字即可。