在我们的云环境中,当部署新实例时,我们会运行集成测试。但是,它变得棘手,因为新代码正在为正在部署的服务在队列中注入消息,而现有实例(以前的版本)仍在运行。我们有一个蓝/绿部署。
RabbitMQ 是否有可能让许多侦听器在队列上侦听但仅针对特定版本?
例如,所有正在运行的服务器都会读取版本 2017.10.20(以前的版本)或更早版本的消息,但它们不会读取新版本的消息。
这样我就可以部署一个新的服务,而其他的 Droplet 都不会读取它的测试消息。
正在部署的新服务具有与现有服务相同的功能。它产生和使用与当前运行的服务相同的消息类型。