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

She*_*noy 27 java messaging jms

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

我通过网络阅读了很多文章,但我找不到答案.

Isa*_*aac 36

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

对于所有JMS实现,您唯一可以确定的是它们都遵循JMS API; 除此之外,JMS实现可以使用任何协议来完成JMS API合同.

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

在更高层次上,没有任何保证; 您可能会发现不同实现者之间的专有协议不同.请记住,使用JMS,性能通常至关重要; JMS供应商付出了很多努力来确保他们的协议("高于"TCP/IP)表现良好.例如,HTTP不会这样做.


Ani*_*kur 11

JMS规范中没有提到这样的协议.它纯粹依赖于JMS提供者和他提供效率和安全性的方法.可以肯定的是,无论协议提供者使用什么来在服务器和客户端之间进行通信都将建立在TCP/IP协议(传输层)之上.您可能拥有作为应用程序层协议的HTTP,或者如果提供程序提供它,您可能拥有SSL,这是一个表示层协议.

例如,ActiveMQ支持以下协议

  • AMQP
  • 项目清单
  • MQTT
  • OpenWire
  • 休息
  • RSS和Atom
  • 重踏
  • WSIF
  • WS通知
  • XMPP

更多细节在这里.