Rabbitmq 使用EasyNetQ进行基于主题的发布

Rabbitmq 使用EasyNetQ进行基于主题的发布,rabbitmq,publish,easynetq,Rabbitmq,Publish,Easynetq,我正在尝试通过easynetQ使用基于主题的路由。 在我的设置中,我有3个队列(“A.B”、“A.C”、“B.C”)和交换“ex”。所有三个队列都通过路由键“A.B”、“A.C”、“B.C”连接到“ex” 下面是我的代码 var bus = RabbitHutch.CreateBus(MQConnectionString).Advanced; var exchange = Exchange.DeclareTopic("ex"); using (va

我正在尝试通过easynetQ使用基于主题的路由。 在我的设置中,我有3个队列(“A.B”、“A.C”、“B.C”)和交换“ex”。所有三个队列都通过路由键“A.B”、“A.C”、“B.C”连接到“ex”

下面是我的代码

       var bus = RabbitHutch.CreateBus(MQConnectionString).Advanced;
        var exchange = Exchange.DeclareTopic("ex");

        using (var publishChannel = bus.OpenPublishChannel())
        {
            Message pat = new Message();
            while (i++ < 10)
            {
                pat.Name = "Vamsee-" + i;
                pat.ID = Guid.NewGuid().ToString();
                if(i%3==0)
                publishChannel.Publish(exchange, "A.*", new Message<Message>(pat));
                else
                publishChannel.Publish(exchange, "A.C", new Message<Message>(pat));
            }
        }
var bus=RabbitHutch.CreateBus(MQConnectionString).Advanced;
风险值交换=交易申报表(“ex”);
使用(var publishChannel=bus.OpenPublishChannel())
{
Message pat=新消息();
而(i++<10)
{
pat.Name=“Vamsee-”+i;
pat.ID=Guid.NewGuid().ToString();
如果(i%3==0)
publishChannel.Publish(交换“A.*”,新消息(pat));
其他的
publishChannel.Publish(交换“A.C”,新消息(pat));
}
}
在这里,当我的代码发布到“A.”时,消息不会发送到所有(或)任何队列。我也试过“*”、“#”

请建议

谢谢
Vamsee

你把它搞错了。您需要使用完整的路由密钥发布每条消息。队列可以使用通配符或特定的绑定密钥绑定,以便接收正确的消息。如果您为您的消费者提供了代码,则可能更容易更准确地诊断问题

您的方法是错误的。您需要使用完整的路由密钥发布每条消息。队列可以使用通配符或特定的绑定密钥绑定,以便接收正确的消息。如果您为您的消费者提供了代码,则可能更容易更准确地诊断问题