Приведи пример взаимодействия компонентов в микросервисной архитектуре

QA Тестировщик Junior Tripster
Приведи пример взаимодействия компонентов в микросервисной архитектуре
Ответы
В микросервисной архитектуре компоненты взаимодействуют через API (чаще REST/gRPC) или асинхронные сообщения (например, через брокер Kafka/RabbitMQ). **Пример REST API:** ``` # Сервис A (Order Service) делает запрос к Сервису B (Payment Service) import requests def process_payment(order_id, amount): response = requests.post( "http://payment-service/api/pay", json={"order_id": order_id, "amount": amount} ) return response.json() ``` **Пример асинхронного взаимодействия (Kafka):** ``` # Сервис отправляет событие о новом заказе from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers='kafka:9092') producer.send('orders', value=json.dumps({"order_id": 123}).encode()) ``` **Ключевые моменты:** - Сервисы слабо связаны, общаются по сети - Возможны синхронные (HTTP) и асинхронные (очереди) сценарии - Важна идемпотентность и обработка ошибок сети