UML-диаграмма зависимости микросервисов
Какая диаграмма лучше всего объясняет, как 9X_dependencies микросервисы зависят друг от друга? Например, следующий 9X_uml случай:
Пользовательская служба предоставляет 9X_dependency конечную точку
user_detail
;Сервис продукта предоставляет 9X_component-diagram конечную точку
product_item_detail
;Служба заказов предоставляет 9X_endpoint конечную точку
make_order
.Пользователь выбирает товар 9X_dependencies и размещает заказ.
Как это объясняется с 9X_uml помощью uml?
Я планировал использовать диаграмму 9X_dependencies компонентов, но не понимаю, как объяснить 9X_uml-modelling интерфейсы каждой службы и как они соотносятся 9X_component-diagram с интерфейсами других служб.
Ответ #1
Ответ на вопрос: UML-диаграмма зависимости микросервисов
Microservices - это независимо развертываемые компоненты. Поэтому 9X_uml-modelling использование component diagram кажется очень хорошей интуицией:
Он 9X_dependencies определяет Компонент как модульную единицу 9X_microservices с четко определенными интерфейсами, которую 9X_component-diagram можно заменить в своей среде. Концепция 9X_microservices компонентов относится к области разработки 9X_microservices на основе компонентов и структурирования 9X_uml-modeling систем на основе компонентов (...).
На диаграмме 9X_endpoints компонентов каждый микросервис будет отображаться 9X_uml-modelling как отдельный component со стереотипом «service»
. Поскольку 9X_dependency микросервисы не просто реализуют интерфейс, но 9X_microservices и предоставляют его через конечную точку, вам 9X_endpoints следует использовать ports:
Порты представляют 9X_uml-modelling собой точки взаимодействия, через которые 9X_dependency EncapsulatedClassifier взаимодействует со 9X_component-diagram своей средой.
Предоставленные или требуемые 9X_endpoints интерфейсы (леденцы и розетки) будут подключены 9X_uml-modelling к портам. Порт имеет значение: без порта 9X_endpoints леденцы на палочке и сокеты могут также 9X_endpoint означать realisation или «use»
dependency для классификатора интерфейса 9X_endpoints в большом монолите!
В итоге ваша диаграмма 9X_dependencies может выглядеть примерно так:
Дополнительные мысли:
-
Если вы сомневаетесь 9X_uml-modeling между стереотипом
«service»
и«subsystem»
, вы можете подумать 9X_uml-modelling о создании собственного профиля UML, который 9X_component-diagram определяет стереотип«microservice»
. -
Если на какой-либо 9X_dependencies сложной диаграмме вы не хотите отображать 9X_endpoint детали конечных точек службы, вы можете 9X_component-diagram просто использовать коннектор сборки без 9X_dependency сокета / леденца на палочке, за исключением 9X_endpoint тех мест, где вы хотите установить фокус.
-
Точно 9X_uml-modelling так же, если вас в основном интересует зависимость, вы 9X_dependencies можете просто показать компонент и его отношение 9X_dependency зависимости (поскольку компоненты являются 9X_dependencies классификаторами).
-
Если вы думаете о микросервисах, вы 9X_uml-modelling неизбежно подумаете о scaling strategies, например о том, что 9X_endpoint несколько экземпляров одной и той же службы 9X_uml-modeling работают на нескольких контейнерах / серверах 9X_dependencies или несколько экземпляров одного и того 9X_endpoint же микросервиса разделяют данные. . Речь 9X_uml-modeling идет о сценариях развертывания компонентов. Затем 9X_dependencies вы можете рассмотреть deployment diagrams. Но это выходит далеко 9X_uml-modeling за рамки вашего вопроса.
-
4
-
3
-
31
-
10
-
1
-
1
-
6
-
3
-
6
-
6
-
1
-
1
-
7
-
2
-
1
-
6
-
4
-
3
-
1
-
2
-
3
-
1
-
6
-
2
-
2
-
3
-
2
-
2
-
6
-
5
-
4
-
5
-
9
-
3
-
1
-
2
-
2
-
3
-
3
-
3
-
7
-
3
-
5
-
6
-
1
-
3
-
5
-
3
-
3
-
6