JMS 使用什么应用程序协议?

What application protocol does JMS use?

我在研究生院和专业经验中学到了大量关于网络协议的知识,并使用 AJAX 等以编程方式发送 HTTP 请求。

我专业从事的项目使用 JMS 进行通信,我很好奇它是如何工作的。

当使用 REST(例如)时,使用 URI 或消息中的参数发出 HTTP 请求 header 以调用服务并进一步描述其需求。

我在工作中的一位导师和我讨论了 JMS 的工作原理,我正在努力理解应用程序级别的消息实际是如何发送的。就我对 JMS 的一般理解(我知道 JMS 有很多实现),它是关于如何格式化发送的数据的规范。

消息本身是否仍然通过 HTTP(S) 发送?会不会是 SMTP?

无需深入令人痛苦,我想了解如何在代码级别将 JMS 消息从一项服务发送到另一项服务?

我的想法是否正确? 可以通过多种不同的方式完成吗? 是否有行业中使用的约定?

如果有人能为我阐明 JMS,我将不胜感激。

谢谢!

JMS 不是协议,它是 API 规范。它不像 TCP 或 HTTP 协议。简单地说,JMS 规范定义了消息 API 的签名。 API 的内部实现方式以及它们用于与消息传递提供程序通信的协议是特定于供应商的。

供应商特定的 JMS 实现知道如何与他们自己的消息提供者通信,但不知道如何与任何其他供应商的消息提供者通信。例如,IBM 的 MQ JMS 实现使用它自己的协议与 IBM MQ 队列管理器进行通信,类似 Oracle JMS,Active MQ 实现使用它们自己的消息提供程序。

希望对您有所帮助。