30.07 Собеседование и микросервисы

30.07 Собеседование и микросервисы

Andrey Beskrovnykh

Сильная связанность и общие библиотеки

Если несколько сервисов взаимодействуют с какой-то библиотекой. Если при этом происходят изменения в этой библиотеке, то потребуется внести правки в каждый из этих сервисов. Слабое связывание означает, что изменения внутреннего содержания сервера не затрагивает клиентов. Слабая связанность приводит к проблемам согласованности данных и выполнению запросов, в которых участвуют несколько сервисов. Ричардсон в своей книге выделяет два подхода к разделению приложения на сервисы: по бизнес возможностям (что бизнес делает?) и по проблемным областям (нужно вникать в суть DDD).

Разбиение приложения на сервисы

Нужно чтобы границы декомпозиции не плавали в последствии. Это важно еще и потому что согласно закону Конвея структурная декомпозиция приложения отзеркаливает структурную организацию компании.

При разбиении на микросервисы полезны принцип единой отвественности (SRP) и принцип согласованного изменения. Если какое-то бизнес-изменение затрагивает изменения в нескольких сервисах, значит у нас проблема с декомпозицией. Проблемы с разбиением.

– Согласованность данных между сервисами (распределенная транзакция)

– Божественный класс,

– Согласованность единого представления данных (ACID-транзакции)

– Латентность сети.

При проектировании внутренней ахитектуры отдельного микросервиса используются SOLID-принципы

Report Page