В чём разница между request-reply и pub-sub моделями
Python
Senior
Без компании
В чём разница между request-reply и pub-sub моделями
Ответы
Request-reply и pub-sub — это две разные модели взаимодействия в распределённых системах.
**Request-reply** — синхронная модель, где клиент отправляет запрос (request) и ждёт ответ (reply). Пример — HTTP: клиент делает запрос к серверу и ожидает ответ.
```
import requests
response = requests.get('https://api.example.com/data') # request
print(response.json()) # reply
```
**Pub-sub** (publish-subscribe) — асинхронная модель, где издатели (publishers) отправляют сообщения в топик, а подписчики (subscribers) получают их без прямого взаимодействия. Пример — брокеры сообщений (RabbitMQ, Kafka).
```
# Пример с pika (RabbitMQ)
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!') # publish
```
**Ключевые отличия**:
- Request-reply: синхронный, точка-точка, клиент знает сервер.
- Pub-sub: асинхронный, широковещательный, отправитель и получатель не знают друг о друге.