将 EasyNetQ 视为我们当前用于 MQ 通信的库的替代品。
对于测试,我尝试使用自定义命名策略简单地将许多消息发布到交换。我的发布方法在下面的小测试方法中>
public void PublishTest()
{
var advancedBus = RabbitHutch.CreateBus("host=localhost;virtualHost=Test;username=guest;password=guest;").Advanced;
var routingKey = "SimpleMessage";
// declare some objects
var queue = advancedBus.QueueDeclare("Q.TestQueue.SimpleMessage");
var exchange = advancedBus.ExchangeDeclare("E.TestExchange.SimpleMessage", ExchangeType.Direct);
var binding = advancedBus.Bind(exchange, queue, routingKey);
var message = new SimpleMessage() {Test = "HELLO"};
for (int i = 0; i < 100; i++)
{
advancedBus.Publish(exchange, routingKey, true, true, new Message<SimpleMessage>(message));
}
advancedBus.Dispose();
}
问题是,即使你创建了 Exchange 和 Queue,并且绑定得当,发布也不会产生任何东西。没有消息进入队列。Rabbit MQ 管理界面中的图表甚至没有显示交易所的任何活动。我在这里错过了什么吗?代码基本上直接取自文档。
如果我使用简单的总线并且只是发布,则会创建一个交换,我可以通过管理界面看到消息正在发布。由于简单总线使用高级 API 发布,我认为这是我缺少的设置问题。
我希望有人能带来一些见解:-)
/托马斯