Mirror

流量镜像 #

流量镜像是一种将实时流量的副本发送到镜像服务的功能,可用于在向用户推出风险最小的服务之前,用真实流量测试新版本的服务,或用于监控和审计现有服务的流量。

通过solarmesh,可以方便的在页面配置流量镜像。选择已接入sidecar的服务作为源服务,配置它的流量镜像到目标服务。在配置生效后,您对源服务的HTTP请求将会发送一份流量的副本到目标服务。

试试看 #

假设我们已经部署过bookinfo示例项目(见 快速开始/安装/使用solarctl安装示例项目),并且为bookinfo示例项目的服务接入了sidecar(见 快速开始/接管服务)

访问我们事先部署好的示例项目bookinfo的页面,多刷新几次,您会发现在没有任何策略干预的情况下,页面中 Book Reviews 一栏呈现三种状态: 红星、黑星和无星,它们的出现概率约为1:1:1。

bookinfo-productpage

此时进入SolarMesh的流量视图界面,您可以看到这样的一幅流量拓扑图。

流量视图

此时可以发现,reviews 服务有3个版本对应着3种状态,我们先在 DestinationRule 上配置 reviews 的版本。

dr版本号

然后在 VirtualService 创建一份http策略,配置流量分配,我们为 reviews 服务的 v1 版本分配100%的流量。

流量视图-reviews-v1-流量分配

此时访问示例项目bookinfo的页面时可以发现,无论我们怎么刷新,页面中 Book Reviews 一栏只会呈现出无星的状态。

bookinfo-productpage-v1

回到SolarMesh的流量视图界面,您可以看到这样的一幅流量拓扑图。目前流量只会被分配到 reviews 的 v1 版本。

流量视图-reviews-v1

我们继续调整 VirtualService 配置,在保持流量100%访问 v1 版本的同时,让流量可以被镜像到 v3 版本。使得 v3 版本也可以接收到来自 productpage 的访问。

流量视图-流量镜像-配置

配置生效之后,查看流量视图的流量拓扑图我们发现 reviews 的 v3 版本已经产生了流量访问。

流量视图-流量镜像

再次访问示例项目bookinfo的页面,无论我们怎么刷新,得到的结果是页面中 Book Reviews 一栏只会呈现出无星的状态。这说明镜像的流量并不会影响原本流量的正常运行。

bookinfo-productpage-v1