Sobes.tech
Назад к вопросам
Senior
4

RabbitMQ — доводилось работать, расскажи особенности?

Компании, где спрашивали
.wrk

Ответ от нейросети

sobes.tech AI

RabbitMQ — это брокер сообщений, реализующий протокол AMQP. Основные особенности:

  • Надежность: поддержка подтверждений доставки (ack), персистентных очередей и сообщений.
  • Гибкость маршрутизации: обменники (exchanges) разных типов (direct, topic, fanout, headers) позволяют гибко направлять сообщения.
  • Поддержка различных моделей обмена сообщениями: очереди, pub/sub, RPC.
  • Кластеризация и отказоустойчивость: можно создавать кластеры для масштабирования и высокой доступности.
  • Плагины и расширяемость: поддержка плагинов для мониторинга, управления и интеграций.

Пример использования в C# с библиотекой RabbitMQ.Client:

var factory = new ConnectionFactory() { HostName = "localhost" };
using var connection = factory.CreateConnection();
using var channel = connection.CreateModel();

channel.QueueDeclare(queue: "task_queue", durable: true, exclusive: false, autoDelete: false, arguments: null);

string message = "Hello RabbitMQ!";
var body = Encoding.UTF8.GetBytes(message);

var properties = channel.CreateBasicProperties();
properties.Persistent = true; // чтобы сообщение сохранилось при перезапуске брокера

channel.BasicPublish(exchange: "", routingKey: "task_queue", basicProperties: properties, body: body);
Console.WriteLine(" [x] Sent {0}", message);

RabbitMQ хорошо подходит для построения распределенных систем с асинхронной обработкой задач и интеграции микросервисов.