我想知道 JMS API 是否使用任何协议(protocol)来传输消息,或者是否使用自己的协议(protocol)。如果是前者,是哪种协议(protocol)?
我在网上阅读了很多文章,但我找不到答案。
最佳答案
标准的 JMS API 只是一组接口(interface); JMS 提供者(例如 WebSphere MQ)为这些接口(interface)提供自己的实现。
对于所有 JMS 实现,唯一可以肯定的是它们都遵循 JMS API;除此之外,JMS 实现可以使用任何协议(protocol)来履行 JMS API 契约(Contract)。
现在,当您特别询问“协议(protocol)”时,您还应该定义您所指的通信中的哪个“层”(例如,查看 OSI Model)。当您的 JMS 客户端必须与位于网络上另一台机器上的 JMS 服务器通信时(典型情况),客户端和服务器之间使用的协议(protocol)将以一种或另一种方式基于 TCP/IP。通过网络,您将能够看到 TCP/IP 数据包来回交换。
在更高的层次上,没有任何保证;您可能会发现不同实现者之间的专有协议(protocol)有所不同。请记住,对于 JMS,性能通常至关重要。 JMS 供应商投入了大量精力来确保他们的协议(protocol)(“高于”TCP/IP)运行良好。例如,HTTP 就不行。
关于java - JMS 使用哪种协议(protocol)来发送和接收消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23882032/