Mule 不会在 Rabbitmq 上的某些队列中创建消费者

Posted

技术标签:

【中文标题】Mule 不会在 Rabbitmq 上的某些队列中创建消费者【英文标题】:Mule does not create consumers in some queues on Rabbitmq 【发布时间】:2016-04-14 20:33:33 【问题描述】:

我正在开发 mule 3.5、rabbitmq 连接器 3.6 和 RabbitMQ 3.6.0 当我部署我的应用程序时,mule 不会在我的队列中创建一些消费者,但如果我多次重新部署我的应用程序,它会创建所有的侦听器完全。 这是我的代码的一部分: Amqp 连接器:

<amqp:connector name="amqpRabbitMQConnector" host="$rabbitmq.host" username="$rabbitmq.username" password="$rabbitmq.password" validateConnections="true" requestedHeartbeat="60"  activeDeclarationsOnly="true">          
<reconnect-forever frequency="2000" blocking="false"/>  
</amqp:connector>

入站端点:

<amqp:inbound-endpoint queueName="$queue.businessSearchRequest" exchange-pattern="one-way"connector-ref="amqpRabbitMQConnector"/>  

出站端点:

<amqp:outbound-endpoint connector-ref="amqpRabbitMQConnector" exchangeName="$exchange.bizSearchResponse"                             exchangeType="topic" exchangeDurable="true" routingKey="$core.routing.key"/>  

实际上,我的交换绑定到我在 rabbitmq 中的队列,我可以看到交换将消息放入队列并且队列深度增加,但是在 rabbitmq 浏览器中没有监听队列的消费者,因此 mule 无法处理它.

【问题讨论】:

您好,我认为您需要提供更多详细信息,例如 Mule 版本连接器版本、您的流程配置文件等。否则将很难为您提供帮助。 当然,你是对的。我的 mule 版本是 3.5.0,amqpconnector 是 3.6.2,这是我的连接器: @MauroRocco 嗨,你是对的。这是我的连接器代码: 嗨@Sima,首先我建议您编辑您的问题,以便人们更好地阅读它。其次,您只向我展示了连接器 conf,但是您通常在其中放置队列名称等的入站和出站消息处理器呢?最好的办法是复制并粘贴您的流程的完整 xml。 @MauroRocco 实际上我是 *** 的新手,但我已经尽力了 :),希望它能提供足够的信息 【参考方案1】:

问题是一些队列侦听器在 AmqpMessageReceiver 初始化之前注册。我更改了我的 xml 订单,问题解决了。

【讨论】:

以上是关于Mule 不会在 Rabbitmq 上的某些队列中创建消费者的主要内容,如果未能解决你的问题,请参考以下文章

Mule ESB 连接到 RabbitMQ

Mule 在变压器中使用 JMS 连接器

从 mule 中的队列/主题中读取消息

Mule 请求者正在使用 JMS 队列中的所有消息

RabbitMQ死信队列

使用 Mule 重新排队 JMS 请求