32 lines
2.2 KiB
Markdown
32 lines
2.2 KiB
Markdown
---
|
||
aliases:
|
||
- микросервисной архитектуре
|
||
- микросервисную архитектуру
|
||
tags:
|
||
- зрелость/🌱
|
||
- type/zero-link
|
||
date:
|
||
- - 2024-03-20
|
||
zero-link:
|
||
- "[[00 Архитектура ПО]]"
|
||
parents:
|
||
linked:
|
||
---
|
||
Обобщенное определение микросервисной архитектуры звучит так: это стиль проектирования, который разбивает приложение на отдельные сервисы с разными функциями.
|
||
|
||
> [!NOTE] Размер имеет значение?
|
||
> Заметьте, что размер здесь вообще не упоминается. Главное, чтобы каждый сервис имел четкий перечень связанных между собой обязанностей.
|
||
|
||
В микросервисной архитектуре единицей модульности является сервис. Сервисы обладают API, которые служат непроницаемым барьером. В отличие от пакетов в Java API нельзя обойти, чтобы обратиться к внутреннему классу.
|
||
|
||
**Межсетевое взаимодействие:** Примитивные каналы, такие как брокер сообщений, или прямое взаимодействие с помощью легковесных протоколов наподобие REST или [[gRPC]].
|
||
## Достоинства
|
||
- Делает возможной [Continuous Delivery](Continuous%20Delivery.md)
|
||
- Сервисы разрабатываются независимо друг от друга
|
||
- Сервисы масштабируются независимо друго от друга
|
||
- Позволяет эксперементировать и внедрять новые технологии
|
||
- Лучше изолируются неполадки.
|
||
## Подходы
|
||
- [Database per service](Database%20per%20service.md) - у каждого сервиса своя база данных.
|
||
## Полезное
|
||
- [What are microservices?](https://microservices.io/) |