Mam aplikację, którą napisałem w .NET, która może monitorować wiele kolejek RabbitMq za pomocą pojedynczego klienta.Monitorowanie wielu subskrypcji RabbitMq przy użyciu pojedynczej aplikacji
Na przykład:
using (IConnection connection = factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
var _consumer = new QueueingBasicConsumer(channel);
string[] list = new string[] { "Queue1", "Queue2", "Queue3", "Queue4" };
_consumer = new QueueingBasicConsumer(channel);
foreach (string currQueueName in list)
{
channel.QueueDeclare(currQueueName, false, false, false, null);
channel.BasicConsume(currQueueName, true, _consumer);
}
while (true)
{
var ea = (BasicDeliverEventArgs)_consumer.Queue.Dequeue();
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
ProcessMessage(message);
}
}
}
Zasadniczo, po prostu chcę, aby móc rozpowszechniać pracę na wielu kolejek, ale tylko jeden wniosek ich wszystko (lub wiele aplikacji może być wdrożony czasochłonne i pełnią tę samą funkcję).
Próbuję rozłożyć pracę w kolejkach, aby konsumenci podejmowali równomiernie pracę w kolejkach.
Czy jest to możliwe przy użyciu Bunny lub macierzystego sterownika Ruby?
Czy można konsumować z wielu kolejek za pomocą Bunny? Tak. Poradniki dotyczące królików są tutaj: http://www.rabbitmq.com/tutorials/tutorial-one-ruby.html –