Junior — Middle
Was ist das Ergebnis der Zustellung einer Nachricht mit beliebigem Text, wenn sie mit der Standardkonfiguration des Exchanges an RabbitMQ gesendet wird?
sobes.tech KI
Antwort von AI
При отправке сообщения с произвольным текстом в RabbitMQ с использованием стандартной конфигурации обменника (default exchange) сообщение будет доставлено в очередь, имя которой совпадает с routing key, указанным при отправке.
Стандартный (default) exchange — это прямой (direct) exchange с пустым именем, который автоматически связывает каждую очередь с routing key, равным имени этой очереди.
Если при публикации сообщения указать routing key, совпадающий с именем существующей очереди, сообщение попадёт в эту очередь. Если такой очереди нет, сообщение будет отброшено (не доставлено).
Пример на C# с использованием RabbitMQ.Client:
var factory = new ConnectionFactory() { HostName = "localhost" };
using(var connection = factory.CreateConnection())
using(var channel = connection.CreateModel())
{
string queueName = "myQueue";
channel.QueueDeclare(queue: queueName, durable: false, exclusive: false, autoDelete: false, arguments: null);
string message = "Привет, RabbitMQ!";
var body = System.Text.Encoding.UTF8.GetBytes(message);
// Отправляем сообщение в default exchange с routing key = имени очереди
channel.BasicPublish(exchange: "", routingKey: queueName, basicProperties: null, body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
Если routing key не совпадает с именем очереди, сообщение не будет доставлено.