AMQP 和 Openwire - Activemq 代理和 2 个不同的消费者

Posted

技术标签:

【中文标题】AMQP 和 Openwire - Activemq 代理和 2 个不同的消费者【英文标题】:AMQP & Openwire - Activemq broker and 2 different consumers 【发布时间】:2015-05-02 04:42:21 【问题描述】:

我有一个支持 amqp 和 openwire 的 activeMQ 代理。 openwire 的生产者(tcp,端口 61616)是否有可能将生产到具有使用 amqp 协议的消费者的队列?

或者我是否仅限于相同的协议消费者和生产者?

【问题讨论】:

面临类似问题。你解决了吗? 【参考方案1】:

是的,可以与 OpenWire JMS 客户端和使用 ActiveMQ 的 AMQP 客户端进行互操作。保存消息的目的地不是单独的空间,因此由一种类型的客户端在队列中放置的消息可由来自其他协议的客户端使用。

您唯一需要解决的是如何将实际消息传达给每个客户。 ActiveMQ 提供了一个可配置的转换器,它既可以在从 AMQP 客户端发送时保留 AMQP 消息的原始字节,也可以将该消息转换为更 JMS 样式的消息对象,OpenWire 客户端将作为预期类型(TextMessage、BytesMessage、地图消息...)。

请参阅 ActiveMQ 的文档以获取有关配置和了解 AMQP 到 OpenWire 消息的映射的帮助。

http://activemq.apache.org/amqp.html

如果您想以最简单的方式处理消息被转换并始终以正确的 JMS 类型到达 OpenWire 客户端的情况,请在配置中选择 JMS Transformer,如下所示:

<transportConnector name="amqp" uri="amqp://localhost:5672?transport.transformer=jms"/>

【讨论】:

我面临着类似的问题。当发送者是 amqp 并且接收者是 jms 但反过来不起作用时,这可以工作。即如果发件人是 jms 客户端,那么我无法使用 amqp 客户端收听。 保证提出一个新问题并展示你在做什么。

以上是关于AMQP 和 Openwire - Activemq 代理和 2 个不同的消费者的主要内容,如果未能解决你的问题,请参考以下文章

openwire vs amqp,哪个会更好

探索ActiveMq

实现JMS规范的ActiveMQ

29. Apache apollo

Node.js 和 ActiveMQ 之间的集成 - 如何使用

php ActiveMQ的安装与使用