上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.1 流量控制
微服务应用最大的痛点就是处理服务间的通信,而这一问题的核心就是流量管理。首先了解传统的微服务应用在没有Service Mesh介入的情况下,是如何完成诸如金丝雀发布这样的路由功能的。假设不借助任何现成的第三方框架,一个最简单的实现方式就是在服务间添加一个负载均衡(如Nginx)做代理,通过修改配置的权重来分配流量。但是这种方式使得对流量的管理和基础设施绑定在了一起,难以维护。
而使用Istio就可以轻松地实现对各种维度的流量控制。图2-1所示为典型的金丝雀发布策略,先根据权重把5%的流量路由给新版本,如果服务正常,再逐渐转移更多的流量给新版本。
Istio的流量控制功能主要分为3个方面:
•请求路由和流量转移。
•弹性功能,包括熔断、超时和重试。
•调试能力,包括故障注入和流量镜像。
图2-1