Какие знаешь важные роли у RabbitMQ
Python
Middle
Без компании
Какие знаешь важные роли у RabbitMQ
Ответы
RabbitMQ — это брокер сообщений, который играет ключевые роли в распределённых системах:
- **Асинхронная обработка** — развязывает производителей (producers) и потребителей (consumers), позволяя обрабатывать задачи в фоне.
- **Балансировка нагрузки** — распределяет сообщения между несколькими workers, избегая перегрузки.
- **Гарантия доставки** — поддерживает подтверждения (acknowledgments), транзакции и persistent messages.
- **Маршрутизация** — через exchanges (direct, topic, fanout, headers) и очереди (queues) с гибкими правилами.
- **Масштабируемость** — кластеризация и шардинг для высокой доступности.
Пример отправки сообщения:
```
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()
```
И потребления:
```
def callback(ch, method, properties, body):
print(f"Received {body}")
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
channel.start_consuming()
```