RabbitMQ 和 AMQP 0-9-1
·阅读 2 分钟
从一开始,RabbitMQ 就实现了 AMQP 规范的 0-8 版本。这是第一个公开发布的版本,但此后进行了大量开发。特别是,我们一直希望支持 AMQP 的 0-9-1 版本。
大约在过去的一年里,我们在 Mercurial 中维护了一个支持 0-9-1 的代理和客户端分支,感兴趣的用户一直在运行该版本,因为它已经成熟。现在,它终于成熟了,我们现在将 0-9-1 支持合并到默认分支中。这意味着它将在下一个版本中提供。
此时,您可能想知道 0-8 和 0-9-1 之间有什么区别。好消息是差异并不大,而且完全合理。0-9-1 主要清理了 0-8 规范,更清楚地解释了代理和客户端在某些极端情况下应如何表现,并从 0-8 中删除了大量模棱两可和半(或更少)思考的功能。
事实上,如果您正在运行 1.8.0 或更高版本,那么您已经在运行一个带有0-9-1 大多数语义更改的代理。但线协议也发生了一些变化,因此您是在使用 0-9-1 还是 0-8 确实很重要。
对于 Java 和 Erlang 客户端,我们打算在下一个版本中简单地切换到仅支持 AMQP 0-9-1。.NET 库已经支持多种协议,因此我们添加 0-9-1 作为另一个选项(并将其设为默认选项)。对于代理,我们将同时支持 AMQP 0-9-1 和 AMQP 0-8。对于任何其他客户端库,我们建议您与库开发人员联系😉
这意味着这次**可以安全地只升级您的代理,或者升级您的代理和所有客户端,但升级客户端而不升级代理是不安全的!**
感谢您的关注。