跳至主内容

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 而只升级你的客户端是不安全的!**

感谢您的关注。

© . This site is unofficial and not affiliated with VMware.