[英]Unable to get Topic Exchange to Work in RabbitMQ AMQP 1.0
我發現使用 RabbitMQ 和 AMQP 1.0 非常困難,特別是因為它與使用 AMQPNetLite 的主題交換有關。 我無法使用主題交換向特定隊列發送消息。 我什至沒有使用通配符。
我的情況也超級簡單。 我有一個主題交流。 我有一個主題交換發送到的隊列。 當我發送到主題交換時,隊列永遠不會收到消息。
test.exchange:
bind: testqueue - routing key: test
testqueue:
bound to exchange with routing key: test
AMQP 1.0 文檔說“主題”是路由鍵,對嗎? 好吧,當我使用 AMQPNetLite 發送到 RabbitMQ 時,它似乎已連接,並且主題似乎已收到消息,但從未路由到隊列。
這是整個代碼:
var rabbitMqAddress = $"amqp://127.0.0.1:5672";
var address = new Address(rabbitMqAddress);
var producerName = $"Producer-test.topic-{Time.GetTimeStamp()}";
var connection = new Connection(address, null, new Open
{
ContainerId = Guid.NewGuid().ToString(),
ChannelMax = 64,
}, null);
var session = new Session(connection);
var senderLink = new SenderLink(session, producerName, "/topic/test.exchange");
senderLink.Send(new Message
{
BodySection = new AmqpValue { Value = "test 123" },
Properties = new Properties
{
Subject = "test",
}
});
圖像證明了綁定。 有什么我想念的嗎?
我認為你混合了這樣做的方式。 您要么發布到地址“/topic/test”-其中 test 是您的路由密鑰,要么發布到“/exchange/test.exchange”並將主題屬性設置為“test”。
兩者都有效。 如果您在地址中使用“/topic/”-前綴,則您將通過默認的“amq.topic”-exchange 而不是您自己的“test-exchange”。
有道理? 此處“路由和尋址”部分中的更多信息: https : //github.com/rabbitmq/rabbitmq-amqp1.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.