我将 Mule ESB 与两个应用程序一起使用(一个通过 rabbitMQ 向另一个发布状态)。仅在我的生产环境中,我会弹出这些 amqp.gen- 队列,但它们已被锁定,我看不到其中的内容。他们绑定到我的交易所(出版商)。
客户指出这是随机资产丢失的问题。我试图消除它们的发生,但没有任何线索。根据 rabbitMQ 教程,这些是在您声明队列但不提供名称时创建的。但是,我不这样做。
更多信息:这两个应用程序使用不同的 rabbitMQ 登录名,队列由我的应用程序(发布者)创建,而不是消费者应用程序。我没有队列名称,我的队列声明如下所示:
<amqp:connector name="amqpConnector"
host="${myApp.status_reporting.host}"
port="${myApp.status_reporting.port}"
username="${myApp.status_reporting.username}"
password="${myApp.status_reporting.password}"
requestedHeartbeat="${myApp.status_reporting.requestedHeartbeat}"
doc:name="AMQP Connector for Status Messages"/>
<flow name="cwm_send" doc:name="cwm_send">
<amqp:outbound-endpoint
exchangeName="${myApp.status_reporting.exchange_name}"
exchangeType="topic"
exchangeDurable="${myApp.status_reporting.exchange_is_durable}"
routingKey="${myApp.status_reporting.routing_key}"
connector-ref="amqpConnector"
doc:name="AMQP Out"
queueDurable="true"
responseTimeout="10000"
/>
</flow>
如您所见,没有队列名称。只是一个路由键。
我的问题是:如果没有与此路由键匹配的队列绑定到此交换,这就是创建这些临时队列的原因吗?我的应用程序如何检索锁定在其中的消息?我在架构上做错了吗?
对于开放式问题,我很抱歉,但我得从某个地方开始。