Какие знаешь типы обменников в RabbitMQ

Python Middle Без компании
Какие знаешь типы обменников в RabbitMQ
Ответы
RabbitMQ поддерживает несколько типов обменников (exchanges), которые определяют, как сообщения будут распределяться между очередями: - **Direct** – сообщение отправляется в очередь с точно совпадающим ключом маршрутизации (routing key). Пример: ``` channel.exchange_declare(exchange='direct_logs', exchange_type='direct') channel.basic_publish(exchange='direct_logs', routing_key='error', body='Error message') ``` - **Fanout** – сообщение рассылается во все связанные очереди, игнорируя routing key. Полезно для широковещательных рассылок. - **Topic** – маршрутизация по шаблону. Routing key может содержать подстановочные символы (`*` – одно слово, `#` – несколько слов). Пример: ``` channel.exchange_declare(exchange='topic_logs', exchange_type='topic') channel.basic_publish(exchange='topic_logs', routing_key='system.error', body='Error') ``` - **Headers** – маршрутизация на основе заголовков сообщения (атрибутов headers), а не routing key. Сравнение происходит по заданным критериям (`x-match: all/any`). - **Default (Nameless)** – встроенный обменник, куда попадают сообщения без указанного exchange. Связывает очереди по имени очереди как routing key.