ActiveMQ:消费者/生产者为同一个队列实现不同的协议?

时间:2014-01-16 11:36:16

标签: java node.js jms activemq

我最近进入消息队列(使用ActiveMQ)并进行实验。

到目前为止,我已经能够设置一个生产者,其中2个使用Java编写的使用者通过Tcp实现JMS。生产者在ActiveMQ中向队列发送2种类型的消息,而在另一端,来自不同机器的2个消费者根据消息属性获取消息。

我的问题是:

  • 消费者/生产者是否需要实施相同的协议或者 是否有可能让生产者使用JMS和Quese向Queue发送消息 有一个客户端(如节点js)使用另一个协议(如AMQP)并从同一队列收集消息?

感谢您的建议,

2 个答案:

答案 0 :(得分:2)

可能您的问题的答案记录在Oracle的JMS as a MOM Standard

重要的是要注意JMS是API标准,而不是协议标准。由于所有JMS客户端都实现了相同的接口,因此很容易将一个供应商的clinet移植到另一个供应商的JMS提供实现。 但是,不同的JMS供应商通常无法直接相互沟通

答案 1 :(得分:1)

ActiveMQ使用自己的协议(OpenWire)实现标准JMS客户端库,但是它还支持其他几种协议,允许您从其他客户端(如MQTT客户端,STOMP客户端或AMQP客户端)进行连接,并从队列中使用/生成。

要了解如何使用AMQP,请参阅ActiveMQ docs,为获得最佳效果,请使用最新版本的ActiveMQ。