К какому типу модели относится RabbitMQ

«К какому типу модели относится RabbitMQ» — вопрос из категории Брокеры сообщений, который задают на 33% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

RabbitMQ — это брокер сообщений, реализующий модель публикация-подписка (Pub/Sub) и очереди сообщений (Message Queue).

Основные модели:

  1. Point-to-Point (P2P) — сообщения отправляются в очередь и обрабатываются одним потребителем.
  2. Pub/Sub — сообщения рассылаются всем подписчикам через обменники (exchanges).

Пример (Python, pika):

import pika

# Подключение к RabbitMQ
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()

# Объявление очереди (P2P)
channel.queue_declare(queue='hello')

# Отправка сообщения
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')

# Объявление обменника (Pub/Sub)
channel.exchange_declare(exchange='logs', exchange_type='fanout')
channel.basic_publish(exchange='logs', routing_key='', body='Log message')

connection.close()

RabbitMQ поддерживает разные типы обменников (direct, fanout, topic, headers), что делает его гибким для различных сценариев.