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

Как выбрать способ взаимодействия микросервисов

Выбор способа взаимодействия микросервисов зависит от требований к производительности, надежности и сложности системы. Основные варианты:

  1. HTTP/REST — простой, человекочитаемый, но менее эффективный. Подходит для публичных API или когда нужна совместимость.
    python
    import requests
    response = requests.get('https://service.example/api/data')
  1. gRPC — бинарный протокол на основе HTTP/2, быстрый, поддерживает стриминг. Хорош для внутренних сервисов.

    python
    # proto файл определяет сервис, затем код генерируется
    stub = service_pb2_grpc.ServiceStub(channel)
    response = stub.GetData(request)
  2. Асинхронные сообщения (RabbitMQ, Kafka) — для событийно-ориентированных систем, обеспечивает отказоустойчивость и масштабируемость.

    python
    import pika
    channel.basic_publish(exchange='', routing_key='queue', body='message')

Критерии выбора:

  • Латентность: gRPC > HTTP > Message Queues
  • Надежность: Message Queues (persistence) > HTTP/gRPC
  • Сложность: Message Queues > gRPC > HTTP

Для смешанных сценариев можно комбинировать подходы, например, REST для внешних вызовов и брокер сообщений для внутренних событий.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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