ASP. NET Core - лучший способ уменьшить зависимости в бизнес-сервисах - PullRequest
1 голос
/ 26 марта 2020

Это веб-приложение, работающее ASP. NET Core MVC 2.1, которое было запущено как приложение ASP. NET MVC 3 и развивалось в течение 5 лет.

Я определил службы для различных бизнес-процессов, но в какой-то момент многие из этих служб зависят друг от друга. Конечным результатом являются службы с множеством зависимостей и некоторыми циклическими ссылками.

Например, служба A выполняет действие, а затем запускает другое действие в службе B. И затем конечный результат должен быть отправлен обратно пользователю , Конечно, это упрощение.

В некоторых случаях я использую Azure Service Bus для разделения процессов. Таким образом, служба A выполняет действие, а затем ставит в очередь действие, которое запускает процесс в службе B. Затем служба B отправляет HTTP-запрос в веб-приложение, чтобы уведомить пользователей. Этот подход сработал хорошо, но я не уверен, стоит ли применять его в масштабе всей системы. Это, безусловно, добавляет сложности, поскольку отладка не так проста.

Я знаю, что кто-то скажет «использовать микросервисы», но это большое изменение, и на данный момент мне нужна одна база данных для всех процессов.

Я обнаружил, что шаблон запрос-ответ, примененный к Azure Service Bus, действительно полезен, но я не смог найти примеры кода. Документация находится здесь: https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-sessions#request -образный шаблон

I was thinking about something like this but I couldn't any good code example

Любые рекомендации приветствуются:)

1 Ответ

1 голос
/ 26 марта 2020

Я думаю, что это очень сложная проблема, с которой вы столкнулись, и сказать, что есть очевидное решение, было бы неправильно.

Недавно я работал над проектом компании, который намеревался уйти, например, под названием Архитектура Звезды Смерти , что несколько близко к вашей проблеме. Чтобы избежать связи между проектами / услугами, компания решила перейти на широкие решения на основе Azure Микросервисы ( Logi c приложения , Фабрики данных , Azure Функции и др. c.). Хотя стоит упомянуть, что решение решило проблемы со связями, потому что с Azure Microservices вы можете легко переключаться между решениями без необходимости беспокоиться о зависимостях.

Есть довольно много статей о хороших и плохих сторонах микросервисов, и вы должны изучить все плюсы и минусы, прежде чем двигаться дальше с ними. Кроме того, проверьте потребности бизнеса, есть ли время и ресурсы для этого или нет.

Еще одна вещь, на которую я могу вам обратить внимание, - это подход реактивного программирования .

Также вы можете посмотреть на этот поток. Есть несколько хороших предложений, которые стоит упомянуть.

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