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

В чем разница между сервисной и микросервисной архитектурами

Сервисная архитектура (SOA) и микросервисная архитектура (MSA) — это два подхода к декомпозиции приложений, но с ключевыми различиями:

  1. Гранулярность:

    • SOA использует более крупные сервисы, часто с обширной бизнес-логикой.
    • MSA разбивает функционал на мелкие, узкоспециализированные сервисы (1 сервис = 1 функция).
  2. Коммуникация:

    • В SOA сервисы общаются через ESB (Enterprise Service Bus), что может стать узким местом.
    • В MSA сервисы используют легковесные протоколы (HTTP/REST, gRPC, Messaging).
  1. Данные:

    • SOA часто использует общую БД.
    • MSA требует, чтобы каждый сервис имел свою БД (принцип Bounded Context).
  2. Масштабирование:

    • SOA масштабируется монолитно.
    • MSA позволяет масштабировать отдельные сервисы.

Пример MSA на Python (FastAPI):

python
# Сервис пользователей
from fastapi import FastAPI
app = FastAPI()

@app.get("/users/{id}")
def get_user(id: int):
    return {"id": id, "name": "Alice"}
python
# Сервис заказов
@app.get("/orders/{user_id}")
def get_orders(user_id: int):
    return [{"order_id": 1, "user_id": user_id}]

Итог: MSA — это эволюция SOA с упором на автономность, легкость и гибкость.

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

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

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

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