Ich habe ein einfaches Publisher/Consumer-Set mit MassTransit implementiert, und ich möchte die Verbraucher die Nachrichten aus der gleichen Warteschlange lesen lassen. Wenn ich es jedoch ausführe, sehe ich einen großen Teil der Nachrichten, die an die Fehlerwarteschlange gesendet werden, anstatt verbraucht zu werden. Von den Diskussionen, die ich gesehen habe (SO, Forum), sollte dies mit RabbitMQ wirklich sehr einfach sein (zeigen Sie einfach auf die gleiche Warteschlange), aber es funktioniert nicht. Gibt es eine zusätzliche Konfiguration, die eingestellt werden sollte?Konkurrierende Verbraucher in Massentransit mit RabbitMQ
hier mein Verlag
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 });
}
}
}
And My Consumer
public class YourMessage { public string Text { get; set; } }
public class Program
{
public static void Main()
{
Console.WriteLine("Consumer");
Bus.Initialize(sbc =>
{
sbc.UseRabbitMqRouting();
sbc.ReceiveFrom("rabbitmq://localhost/test_queue");
sbc.Subscribe(subs =>
{
var del = new Action<IConsumeContext<YourMessage>,YourMessage>((context, msg) =>
{
Console.WriteLine(msg.Text);
});
subs.Handler<YourMessage>(del);
});
});
while (true) { }
}
}