Как отделить существующий проект, используя архитектуру Micro Service? - PullRequest
0 голосов
/ 03 сентября 2018

Я создал один проект в asp.net MVC для банковского сектора.

На момент разработки мы не думали о масштабировании. Поэтому мы не использовали никакой модульной архитектуры.

Но сейчас я сталкиваюсь с множеством проблем, связанных с развертыванием и разработкой новой функции.

Если я разрабатываю какую-либо новую функцию, то в настоящее время я должен выпустить весь проект, так как существует только одно пространство имен - projectmain.dll.

Теперь я хочу разделить все контроллеры в отдельных проектах, и я хочу развернуть их отдельно, и используя архитектуру MicroService, я хочу использовать это в основном проекте.

Примечание Мои представления тесно связаны с контроллером.

Итак, как я могу перенести все эти контроллеры в архитектуру MicroService?

Объяснение структуры проекта

1 Ответ

0 голосов
/ 03 сентября 2018

«Как перейти на микросервисы» нужен очень очень длинный ответ, который может быть книгой. Однако я могу дать вам несколько указаний, которые могут вам помочь.

Прежде всего, вы можете использовать подход DDD, чтобы помочь вам правильно определить ограниченный контекст вашего приложения. В идеальной ситуации каждый домен должен соответствовать ограниченному контексту. Таким образом, вы можете разделить по ограниченному контексту. Каждый ограниченный контекст может иметь один или несколько микросервисов, но микросервис не должен быть больше ограниченного контекста. Из того, что я вижу, ваши контроллеры уже разделены по доменам или хотя бы по поддоменам. Вы можете попробовать создать микросервис для каждого контроллера и посмотреть, как он работает; возможно дальнейшее разделение, то есть по Агрегату от DDD (каждый тип Агрегата может быть микросервисом).

Во-вторых, у вас должны быть отдельные проекты для каждого микросервиса. В идеале, если вы хотите устойчивости и масштабируемости, микросервис не должен вызывать другой микросервис во время внешнего запроса. Это означает, что когда микросервис получает запрос от клиентов, он не должен вызывать другой микросервис; для этого в локальном хранилище должны быть все необходимые данные от других микросервисов (с использованием фоновых задач, с синхронными или асинхронными вызовами).

Наконец, что не менее важно, каждый микросервис должен иметь свою собственную базу данных; они не должны совместно использовать одну и ту же базу данных или таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...