Встречается на собеседованиях • сегодня

Как реализуются асинхронные взаимодействия микросервисов

В Python асинхронное взаимодействие микросервисов обычно реализуется через:

  1. HTTP (REST/gRPC) с асинхронными клиентами:
python
import httpx

async def fetch_data():
    async with httpx.AsyncClient() as client:
        response = await client.get('http://service-b/api/data')
        return response.json()
  1. Message Brokers (RabbitMQ, Kafka):
python
import aio_pika

async def consume():
connection = await aio_pika.connect_robust("amqp://guest:guest@localhost/")
channel = await connection.channel()
queue = await channel.declare_queue("tasks")
async for message in queue:
process(message.body)
await message.ack()

text

3. **Event-Driven** через Redis Pub/Sub:
```python
import aioredis

async def listen():
    redis = await aioredis.create_redis('redis://localhost')
    channel, = await redis.subscribe('updates')
    async for msg in channel.iter():
        handle_event(msg)

Ключевые моменты:

  • Используйте asyncio для неблокирующих операций
  • Обрабатывайте ошибки и таймауты
  • Для сложных сценариев подходят Saga Pattern или Outbox Pattern
  • Мониторинг и логирование критически важны
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы