Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Rabbitmq中重命名队列?_Rabbitmq - Fatal编程技术网

如何在Rabbitmq中重命名队列?

如何在Rabbitmq中重命名队列?,rabbitmq,Rabbitmq,我使用的是Rabbitmq 3.7.17,我需要重命名已经包含一些消息的现有队列。有没有简单的方法来重命名队列?您不能重命名队列。如果必须保留这些消息,请执行以下步骤 创建新队列 将其绑定到exchange,就像绑定旧队列一样 从交换中解除旧队列的绑定 使用旧队列中的消息并将其重新发布到exchange。这将消息路由到新队列 一旦旧队列中的所有消息都已使用,请将其删除 要添加@user11044402已经推荐的内容,在您以新名称创建队列后,使用RabbitMQ插件(如果已安装)将所有消息从具有

我使用的是
Rabbitmq 3.7.17
,我需要重命名已经包含一些消息的现有队列。有没有简单的方法来重命名队列?

您不能重命名队列。如果必须保留这些消息,请执行以下步骤

  • 创建新队列
  • 将其绑定到exchange,就像绑定旧队列一样
  • 从交换中解除旧队列的绑定
  • 使用旧队列中的消息并将其重新发布到exchange。这将消息路由到新队列
  • 一旦旧队列中的所有消息都已使用,请将其删除

要添加@user11044402已经推荐的内容,在您以新名称创建队列后,使用
RabbitMQ
插件(如果已安装)将所有消息从具有旧名称的队列移动到新队列。然后删除旧队列-铲子也将自动删除。

这种方法有许多缺点:-新事件可以从exchange添加到新队列,但与重新发布的事件不符-绑定到exchange的所有队列都将获得重新发布的事件,当然是不符序的