txAMQP可以在RabbitMQ中解绑吗?

发布于 2024-08-21 14:50:25 字数 198 浏览 8 评论 0原文

我想删除 RabbitMQ 中的绑定而不删除绑定队列。我正在使用 txAMQP 和 0.8 AMQP 规范;它似乎是 RabbitMQ 支持的唯一版本,但它没有 unbind 方法。

奇怪的是,仔细阅读源代码发现 RabbitMQ 支持 unbind,这让我很困惑。

这种客户端和服务器的组合可以解绑吗?如果是这样,怎么办?

I want to remove bindings in RabbitMQ without deleting the bound queue. I am using txAMQP with the 0.8 AMQP spec; it seems to be the only version that RabbitMQ supports but it has no unbind method.

Oddly enough, a perusal through the source code suggests that RabbitMQ supports unbind, which leaves me rather confused.

Can I unbind with this combination of client and server? If so, how?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你是我的挚爱i 2024-08-28 14:50:25

正如您所注意到的,RabbitMQ 现在有几个版本支持扩展 Queue.Unbind 方法,其定义从 0-9 规范中取消,但并非所有 AMQP 客户端库都以相同的方式扩展。

要使其与 txAMQP 一起使用,您需要从 0-9 规范中获取 Queue.Unbind 和 Queue.UnbindOk 方法的 XML 定义,将它们粘贴到 txAMQP 使用的 0-8 规范文件中,然后重新启动您的应用程序。如果我正确理解了 txAMQP 的工作原理,它现在应该有一个可用的 Queue.Unbind 方法。

以下是来自 BSD 许可的 0-9-1 规范的相关 XML 节:

<method name="unbind" synchronous="1" index="50">
  <chassis name="server" implement="MUST"/>
  <response name="unbind-ok"/>
  <field name="reserved-1" type="short" reserved="1"/>
  <field name="queue" domain="queue-name"/>
  <field name="exchange" domain="exchange-name"/>
  <field name="routing-key" domain="shortstr"/>
  <field name="arguments" domain="table"/>
</method>
<method name="unbind-ok" synchronous="1" index="51">
  <chassis name="client" implement="MUST"/>
</method>

As you've noticed, RabbitMQ has for a few versions now supported an extension Queue.Unbind method, with definition lifted from the 0-9 specification, but not all AMQP client libraries have been extended in the same way.

To get this to work with txAMQP, you will need to take the XML definitions of the Queue.Unbind and Queue.UnbindOk methods from the 0-9 spec, paste them into the 0-8 spec file txAMQP uses, and restart your application. It should now have a Queue.Unbind method available, if I've properly understood how txAMQP works.

Here are the relevant XML stanzas, from the BSD-licensed 0-9-1 spec:

<method name="unbind" synchronous="1" index="50">
  <chassis name="server" implement="MUST"/>
  <response name="unbind-ok"/>
  <field name="reserved-1" type="short" reserved="1"/>
  <field name="queue" domain="queue-name"/>
  <field name="exchange" domain="exchange-name"/>
  <field name="routing-key" domain="shortstr"/>
  <field name="arguments" domain="table"/>
</method>
<method name="unbind-ok" synchronous="1" index="51">
  <chassis name="client" implement="MUST"/>
</method>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文