JMS 使用哪种协议来发送和接收消息?

2022-09-01 08:43:33

我想知道JMS API是否使用任何协议来传输消息,或者是否使用自己的协议。如果是前者,是哪种协议?

我在网上阅读了许多文章,但我找不到答案。


答案 1

标准的JMS API只是一组接口;JMS 提供程序(如 WebSphere MQ)为这些接口提供了自己的实现。

对于所有JMS实现,您唯一可以肯定的是它们都遵循JMS API;除此之外,JMS实现可以使用任何协议来履行JMS API契约。

现在,当您专门询问“协议”时,您还应该定义所指通信中的“层”(例如,查看OSI模型)。当 JMS 客户机必须与位于网络上另一台机器上的 JMS 服务器通信时(典型情况),客户机和服务器之间使用的协议将以某种方式基于 TCP/IP。通过网络,您将能够看到TCP / IP数据包来回交换。

在较高层次上,没有保障;您可能会发现不同实现者之间的专有协议不同。请记住,使用JMS,性能通常至关重要。JMS供应商投入了大量精力来确保他们的协议(“高于”TCP / IP)性能良好。例如,HTTP就不行了。


答案 2

JMS 规范中没有提到这样的协议。它完全依赖于JMS提供商及其提供效率和安全性的方法。er可以确定的一件事是,无论使用什么协议提供者在服务器和客户端之间进行通信,都将建立在TCP / IP协议(传输层)之上。您可能有HTTP,它是一种应用层协议,或者如果提供商提供它,您可能具有SSL,它是表示层协议。

例如,ActiveMQ支持以下协议

  • 阿姆奎普
  • 列表项
  • 断续器
  • OpenWire
  • 休息
  • RSS 和 Atom
  • 西夫
  • WS 通知
  • 断续器

更多详细信息请点击此处


推荐