Микросервисная архитектура(MSA)

Проработать:

  1. microservices логирование в один документ
  2. Как управлять транзакциями в микросервисной архитектуре
  3. Переписываем домашний проект на микросервисы (Java, Spring Boot, Gradle)
  4. Обработка распределенных транзакций в микросервисной архитектуре
  5. Microservices explained - the What, Why and How?
  6. Микросервисы (Microservices)
  7. Макропроблема микросервисов
  8. Микросервисная архитектура, ее паттерны проектирования и особенности

Что это:

В микросервисной архитектуре слабо связанные сервисы взаимодействуют друг с другом для выполнения задач, относящихся к их бизнес-возможностям. Микросервисы в значительной степени получили свое название из-за того, что сервисы здесь меньше, чем в монолитной среде. Тем не менее микро — о бизнес-возможностях, а не о размере. По сравнению с монолитом в микросервисах у вас есть несколько единиц развертывания. Каждый сервис развертывается самостоятельно.

Основные разделы

Плюсы:

  1. Легкое понимание контекста.
  2. Гибкость развития.
  3. Масштабирование.
  4. Микросервисы могут быть написаны на разных языках и быть запущены на разных платформах.

Минусы:

  1. Сеть между микросервисами ненадёжна. Отказ, слабый сигнал, файрвол.

Типы взаимодействия между микросервисами:

  1. Синхронное(HTTP/REST)
  2. Асинхронное - частая реализация через Kafka, RabbitMQ и тд.

Синхронные вызовы не приветствуются.

Для каждого микросервиса должна быть отдельная БД.

Лучшие фреймворки для java-микросервисов:

  1. Spring Boot
  2. Quarkus
  3. Micronaut
  4. Vert.x
  5. Helidon

Распределенные транзакции:

Распределенные транзакции охватывают несколько физических систем(ПК, Микросервисов, БД), в то время как стандартные транзакции этого не делают.