公共交通中与RabbitMQ竞争的消费者
我用MassTransit实现了一个简单的发布者/消费者集,我希望让消费者从同一队列读取消息。但是,当我运行它时,我看到大部分消息被发送到错误队列,而不是被消耗。从我所看到的讨论(,)来看,RabbitMQ应该非常简单(只指向同一个队列),但它不起作用。是否应设置其他配置 这是我的出版商公共交通中与RabbitMQ竞争的消费者,rabbitmq,masstransit,Rabbitmq,Masstransit,我用MassTransit实现了一个简单的发布者/消费者集,我希望让消费者从同一队列读取消息。但是,当我运行它时,我看到大部分消息被发送到错误队列,而不是被消耗。从我所看到的讨论(,)来看,RabbitMQ应该非常简单(只指向同一个队列),但它不起作用。是否应设置其他配置 这是我的出版商 public class YourMessage { public string Text { get; set; } } public class Program { public static vo
public class YourMessage { public string Text { get; set; } }
public class Program
{
public static void Main()
{
Console.WriteLine("Publisher");
Bus.Initialize(sbc =>
{
sbc.UseRabbitMqRouting();
sbc.ReceiveFrom("rabbitmq://localhost/test_queue");
});
var x = Console.Read();
for (var i = 0; i <= 1000; i++)
{
Console.WriteLine("Message Number " + i);
Bus.Instance.Publish(new YourMessage { "Message Number " + i });
}
}
}
public类YourMessage{public string Text{get;set;}
公共课程
{
公共静态void Main()
{
Console.WriteLine(“出版商”);
总线初始化(sbc=>
{
sbc.UseRabbitMqRouting();
sbc.从(”rabbitmq://localhost/test_queue");
});
var x=Console.Read();
对于(var i=0;i
{
sbc.UseRabbitMqRouting();
sbc.从(”rabbitmq://localhost/test_queue");
订阅(subs=>
{
var del=新操作((上下文,消息)=>
{
Console.WriteLine(msg.Text);
});
子处理器(del);
});
});
while(true){}
}
}
接收者/使用者和发布者不能在同一队列中。如果希望竞争的使用者具有多个针对同一队列运行的使用者实例
我们有文档,但这一部分目前还缺乏,所以我理解您的困惑:如果您成功了,文档方面的帮助将非常好 因此,解决方案似乎是更改发布服务器中的行:
sbc.ReceiveFrom("rabbitmq://localhost/test_queue");
例如:
sbc.ReceiveFrom("rabbitmq://localhost/test_queue_publisher");
这阻止了发布者竞争他们没有配置为使用的消息。刚刚在GitHub上找到了一个例子
sbc.ReceiveFrom("rabbitmq://localhost/test_queue_publisher");