Ответы пользователя по тегу Сервис-ориентированная архитектура
  • Как работает grpc?

    @deliro
    А что тут понимать-то? Представь, что у тебя есть два сервиса, которые общаются по JSON-RPC over HTTP. Приходит сервис1 к сервису2 и говорит, ну-ка бахни мне метод getSomethingOfSomething с аргументами вот такими. И всё это в виде JSON внутри HTTP body. Сервис2 идёт, смотрит у себя в реестре метод getSomethingOfSomething, вызывает его с аргументами и отдаёт результат. Легко? Легко. Теперь тоже самое, только вместо HTTP там HTTP/2, а вместо JSON — protobuf. То есть, два сервиса договорились, что в первых четырёх байтиках будет лежать, например, int32, в следующих восьми будет лежать float64 ну а там дальше ещё что-то будет лежать.
    Ответ написан
    3 комментария
  • Микросервисная архитектура: насколько микро? и почему не возникает проблем с долгим ожиданием?

    @deliro
    Начал изучать тему микросервисной архитектуры, для расписала нашего монолита из-за проблем с масштабируемостью.

    Добро пожаловать в дивный мир микросервисов. Теперь у тебя будут не только проблемы с масштабируемостью, но и куча других.

    ...SRP, т.е. каждый микросервис, должен отвечать только за одну задачу.

    Это не так, SRP говорит о другом.

    Все остальные проблемы — это большие вопросы, которые нужно разбирать долго.
    И прочитай здесь. Если коротко: микросервисы — это инфраструктура. Будешь думать, что они решат твои бизнесовые проблемы — получишь ещё больше бизнесовых проблем и целую гору инфраструктурных. А масштабировать можно и монолит прекрасно.
    Ответ написан
    Комментировать
  • Как написать функциональные тесты в системе с микросервисами?

    @deliro
    Как можно замокать сервисы?

    Ты вот не поверишь. Моками! Сервисы обычно общаются по HTTP/gRPC. Вот и мокай ответы, перехватывая реальную отправку запроса

    Но самый лучший способ писать интеграционные тесты — это нормальное поднятие изолированного экземпляра всей инфраструктуры с фикстурами и без моков. Правда, это может быть очень дорого и долго.
    Ответ написан
    Комментировать