Что такое Exchange в RabbitMQ
Python
Senior
Без компании
Что такое Exchange в RabbitMQ
Ответы
Exchange в RabbitMQ — это сущность, которая получает сообщения от продюсеров и направляет их в очереди согласно определенным правилам (типу exchange).
Основные типы exchange:
- **Direct** — маршрутизация по точному совпадению routing key
- **Fanout** — рассылка во все связанные очереди (broadcast)
- **Topic** — маршрутизация по шаблону routing key (например, `logs.*`)
- **Headers** — маршрутизация по заголовкам сообщения (а не по routing key)
Пример объявления exchange в Python (библиотека `pika`):
```
channel.exchange_declare(
exchange='my_exchange',
exchange_type='direct',
durable=True
)
```
Ключевые особенности:
- Exchange не хранит сообщения (в отличие от очередей)
- Один exchange может отправлять сообщения в несколько очередей
- Поведение exchange определяется его типом и binding-правилами