1

Fowler 说,一小部分流量被路由到 Canary 版本,而旧版本仍在运行。

这是假设可以在负载均衡器/路由器级别控制路由。

我们有一个用例,其中微服务从队列中消耗并进行一些处理。我们想知道如何控制路由以将一部分流量引导到金丝雀消费者。

我们考虑的一个选项是有一个单独的“金丝雀队列”,但问题是生产者现在必须意识到这个队列听起来像是一种气味。

这似乎是涉及队列的常见问题。关于如何将 Canary 用于此类应用程序的任何想法?

4

2 回答 2

2

正如您所写,金丝雀版本的目标是通过新部署驱动一小部分实时流量,以最大程度地减少新部署中缺陷的潜在影响。当您不控制到正在部署的服务的路由时,您可以通过调整新版本服务与当前版本服务的百分比来调整新部署处理的流量百分比。

例如,您的队列正在由 v1 的 100 个服务实例池处理。金丝雀测试下一个版本,部署v2的1到10,关闭v1的1到10。这会将大约 1% 到 10% 的流量路由到新服务。

如果新版本服务的预期吞吐量差异显着,请考虑调整新旧服务的比率。

如果您当前部署的服务非常小,请考虑在部署新服务的实例之前暂时增加已部署的当前服务的总数。例如,假设您的活动部署是 3 个服务。在部署 1 个新版本服务之前再部署 6 个当前服务将使您将流向金丝雀的流量保持在接近 10% 的水平。

于 2017-12-13T15:36:09.160 回答
0

队列工作者的金丝雀部署有两种方法:

  1. 专用金丝雀队列
  2. 一个普通的队列

这两种方法都有其优点和缺点,此处详细介绍:http ://www.varlog.co.in/blog/canary-deployment-workers/

于 2020-08-04T08:36:47.403 回答