我是CFX和RabbitMQ的新手。 我已经按照CFX和RabbitMQ上的教程来发布和使用消息。
我的经纪人的设置如下。
我已经在RabbitMQ Broker中手动创建了交换,队列和绑定= exchangeA-> routingKeyA-> queueA(持久队列,不包含任何其他参数)
CFX =
Uri uri = new Uri($"amqp://{Username}:{Password}@localhost:5672");
string exchangeAddress = $"/exchange/exhangeA/routingKeyA";
string queueAddress = $"/queue/queueA/";
endpoint.AddPublishChannel(uri,exchangeAddress);
endpoint.AddSubscribeChannel(uri,queueAddress);
结果:
我能够使用CFX成功发布和接收消息。
但是,如果我删除队列并再次使用RabbitMQ管理重新创建它,并通过将参数“ x-queue-mode” = true设置为一个懒惰队列,或者将自动删除设置为true /设置其他任何值对于队列的队列参数,我的CFX能够发布消息,但无法使用队列中的消息。 错误消息将继续显示,如下所示:
"ERROR extablishing connection to queue = PRECONDITION_FAILED - inequivalent arg 'auto_delete' for queue 'queueA' in vhost '/': received 'false' but current is 'true'"
我已经为队列和交换设置了绑定。
如果有人请指导我/让我知道是否有办法使用队列中的消息(如果RabbitMQ代理中创建的队列包含参数),我将不胜感激。
或者,如果当前的CFX无法使用队列中的消息创建参数,则CFX无法使用该消息,并且它只能使用队列中的消息,而无需设置任何参数就可以持久使用该消息,因为我似乎无法在CFX文档中找到任何允许我在使用addSubscribeChannel之前设置队列参数的参数?
如果我错了,请纠正我。
任何反馈将不胜感激。
感谢您的期待。 问候, 雪兔子。