Ответ
Фреймы взаимодействия — это шаблоны коммуникации между компонентами/системами. Основные типы:
- Request-Response (синхронный): клиент ждёт ответа. Пример — HTTP, REST API.
response = requests.get('https://api.example.com/data') # клиент блокируется до ответа
- Publish-Subscribe (асинхронный): издатели рассылают события, подписчики их получают. Пример — Kafka, RabbitMQ.
# Издатель
channel.basic_publish(exchange='logs', body='Сообщение')
# Подписчик
def callback(ch, method, properties, body):
print("Получено:", body)
-
Event-Driven: система реагирует на события (например, клик в UI или изменение данных). Пример — WebSockets, AWS Lambda.
-
Polling: клиент периодически опрашивает сервер. Неэффективно, но просто.
while True:
data = check_for_updates() # опрос каждые N секунд
time.sleep(5)
- Push-Notifications: сервер инициирует отправку данных (например, Firebase Cloud Messaging).
Выбор зависит от требований к latency, масштабируемости и согласованности данных.