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

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

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

Что это:

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

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

Плюсы:

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

Минусы:

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

Что нужно контролировать:

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

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

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

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

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

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

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

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