В чем разница между Queue и Exchange в RabbitMQ
Python
Middle
Без компании
В чем разница между Queue и Exchange в RabbitMQ
Ответы
Queue (очередь) — это место, где хранятся сообщения до их обработки потребителями. Сообщения попадают в очередь через exchange.
Exchange (обменник) — это точка входа сообщений в RabbitMQ. Он определяет, как сообщения будут распределяться по очередям, используя тип обмена (direct, fanout, topic, headers) и routing key.
**Пример:**
```
# Создание exchange и очереди
channel.exchange_declare(exchange='logs', exchange_type='fanout')
channel.queue_declare(queue='log_queue')
channel.queue_bind(exchange='logs', queue='log_queue')
# Отправка сообщения в exchange
channel.basic_publish(exchange='logs', routing_key='', body='Hello World!')
```
**Различия:**
- Exchange маршрутизирует сообщения, а очередь их хранит.
- Сообщения всегда отправляются в exchange, а не напрямую в очередь.
- Очередь должна быть привязана к exchange для получения сообщений.