我正在为一个新项目寻找消息服务,该项目必须将一些 C# 应用程序与一些 Java 应用程序连接起来。我真的很喜欢 RabbitMQ,因为它似乎对这两种技术都有惊人的支持。我在 RabbitMQ 规范中看到,目前仅提供 AMQP 0-9-1 模型。
这是一个表演障碍吗?我应该联系提供 AMQP 1.0 的 ActiveMQ 吗?
谢谢您的建议
您的问题在官方协议概述中得到了完美解决:
AMQP 1.0
尽管有这个名字,AMQP 1.0 是一个完全不同的协议 来自 AMQP 0-9-1 / 0-9 / 0-8,在线上基本上不共享任何内容 等级。 AMQP 1.0 施加的语义要求要少得多;这是 因此,可以更轻松地向现有代理添加对 AMQP 1.0 的支持。这 协议比 AMQP 0-9-1 复杂得多,并且有 更少的客户端实现。
RabbitMQ 通过插件支持 AMQP 1.0。
如果您的客户都实现了 AMQP 1.0,并且它为您提供了比 0.9.x 显着的优势,并且您根本无法没有它,并且另一个代理为 1.0 提供了比 RabbitMQ 更好的支持(其插件在撰写本文时仍处于“实验阶段”),那么是的,也许您应该考虑另一家经纪人。否则,我怀疑它会给你带来很大的实际影响,而且 RabbitMQ 似乎正在努力添加完整的 1.0 支持,所以它可能是未来可行的升级路径。如果你自己无法指出具体的证据来说明为什么 0.9.x 本身就是一个令人惊叹的东西,我也不能。
从 RabbitMQ 4.0 开始,RabbitMQ 原生支持 AMQP 0.9.1 和 AMQP 1.0:https://www.rabbitmq.com/blog/2024/08/05/native-amqp