我正在考虑使用流量镜像与Istio的黑暗测试版本。
镜像流量将意味着像订单和支付之类的写API被多次调用,我不想这样做,否则我会向客户收取两次费用&发送给他们一个重复的产品。
是否有一种标准的方法来防止这种情况(在生产中,顽固性似乎是一件很奇怪的事情),还是镜像实际上只适用于read?
发布于 2020-11-30 09:02:23
问题
有使用流量镜像设置的图解。

虽然这些镜像请求被镜像为“火与忘”,镜像服务的答复只是被删除(由特使代理侧加)到/dev/null,而不是返回给调用者,但它仍然使用这个api。
解决方案
如评论中所述
在我看来,您应该使用一些自定义标头来添加用于测试目的的路径,因此这只能由您或您的组织进行测试,并且客户不应该参与其中。
本主题由克里斯汀·波斯塔( Christian Posta )详细描述这里。
当我们将新版本的服务部署到测试集群并镜像通信量时,我们需要注意对环境其他部分的影响。我们的服务通常需要与其他服务(数据查询、更新数据等)协作。如果与其他服务的协作只是简单地读取或获取请求,而这些协作者能够承担额外的负载,这可能不是问题。但是,如果我们的服务改变了协作者中的数据,我们需要确保这些调用被导向测试加倍,而不是实际的生产流量。
您可能会考虑以下几种方法,所有这些方法都在上面的链接中描述:
实际上,将生产流量镜像到我们的测试集群(无论该集群是否存在于生产环境还是非生产环境中)是降低新部署风险的一种非常强大的方法。像Twitter和亚马逊这样的大型网络公司已经这么做多年了。这种方法带来了一些挑战,但正如上面的模式所讨论的那样,也存在一些不错的解决方案。
https://stackoverflow.com/questions/65000792
复制相似问题