java - JMS 使用哪种协议(protocol)来发送和接收消息?

标签 java jms messaging

我想知道 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/

相关文章:

Twilio IP 消息传递/聊天支持文件传输吗?

java - TextInputLayout "setError(null)"在 "setErrorEnabled(false)"之前有必要吗?

Java函数式接口(interface)自动将第一个参数分配为类?

java - 安卓 "Skipped XX frames!"

glassfish - 在 glassfish 服务器消息队列上发送消息

asp.net-mvc - 如何使用 Entity Framework 在 C# 中建模消息/聊天系统

java - 分析Java项目中的JAR依赖

java - 如何在 Eclipse (Juno) 中的 Glassfish 4.0 上运行 JMS 应用程序

java - 每个请求与每个 session 发出临时队列是否会影响性能?

google-chrome-extension - 未捕获错误的原因 : Attempting to use a disconnected port object