Что такое RabbitMQ

«Что такое RabbitMQ» — вопрос из категории Брокеры сообщений, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

RabbitMQ — это брокер сообщений с открытым исходным кодом, реализующий протокол AMQP (Advanced Message Queuing Protocol). Он позволяет приложениям обмениваться сообщениями асинхронно, обеспечивая надежность, масштабируемость и декомпозицию сервисов.

Ключевые особенности:

  • Очереди сообщений (Queues)
  • Обменники (Exchanges) для маршрутизации
  • Поддержка различных паттернов (Pub/Sub, RPC и др.)
  • Персистентность сообщений
  • Подтверждение доставки (ACK/NACK)

Пример объявления очереди на Python с библиотекой pika:

import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
connection.close()