跳到主要内容

RabbitMQ 和 AMQP 0-9-1

·2 分钟阅读
Simon MacMullen

自最初以来,RabbitMQ 已经实现了 AMQP 规范的 0-8 版本。这是第一个公开可用的版本,但此后已经进行了大量开发。特别是,我们一直希望支持 AMQP 的 0-9-1 版本。

在过去一年左右的时间里,我们在 Mercurial 中维护了一个支持 0-9-1 的 broker 和客户端分支,感兴趣的用户一直在运行该版本,因为它逐渐成熟。现在,它终于成熟了,我们正在将 0-9-1 支持合并到默认分支中。这意味着它将包含在下一个版本中。

此时,您可能想知道 0-8 和 0-9-1 之间的区别是什么。 好消息是,差异并不大,而且完全合理。 0-9-1 主要清理了 0-8 规范,更清楚地解释了在某些极端情况下 broker 和客户端的预期行为方式,并从 0-8 中删除了一堆歧义和考虑不周全(或更少)的功能。

实际上,如果您运行的是 1.8.0 或更高版本,那么您已经在运行一个 broker,它包含了 0-9-1 的大部分语义更改。但是线路协议也发生了一些变化,因此您使用的是 0-9-1 还是 0-8 非常重要。

对于 Java 和 Erlang 客户端,我们计划在下一个版本中完全切换到仅支持 AMQP 0-9-1。 .NET 库已经支持多种协议,因此我们添加 0-9-1 作为另一个选项(并使其成为默认选项)。 对于 broker,我们将支持 AMQP 0-9-1 和 AMQP 0-8。 对于任何其他客户端库,我们鼓励您与库开发人员联系😉

这意味着这次仅升级您的 broker,或者升级您的 broker 和所有客户端是安全的,但是不升级 broker 而升级客户端是不安全的!

感谢您的关注。

© . All rights reserved.