Приведи пример взаимодействия компонентов в микросервисной архитектуре
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) и асинхронные (очереди) сценарии
- Важна идемпотентность и обработка ошибок сети