Сценарий с использованием Servicebus - PullRequest
0 голосов
/ 07 февраля 2012

Я много читаю о реализации Servicebus (NServicebus, MassTransit, ...) и думаю, что понимаю, как работает Servicebus.Я все еще не уверен, какой правильный сценарий использовать один, потому что я сам знаю, и я склонен использовать технологии, хотя они могут быть накладными расходами для нужд.

Так что мой вопрос: каковы веские причины /сценарии использования Servicebus и нужно ли мне использовать технику DDD для его использования?

Некоторые сценарии, о которых я подумал:

  • Связь с внешними системами (например, мое приложение взаимодействует с внешнимисистемы, и я хочу убедиться, что они вызваны, например, я сохраняю объект в своей базе данных, но мне также нужно вызвать внешний веб-сервис для синхронизации данных. Я бы создал команду, и у меня было бы 2 обработчика, которые получают событие, один сохраняющийсяк моей базе данных, другой обрабатывает веб-сервис. Если команда не выполнена, она будет повторена)
  • Масштабируемость (я смогу масштабироваться на нескольких машинах)
  • Это может привести к более чистомукод (вместо выполнения нескольких последовательных задач, когда, например, сущность обновляется, я могу иметь другой Messagобработчики, которые выполняют эти задачи изолированно, например, сохраняют сущность, другой обработчик может выполнить обновление денормализованного хранилища данных и т. д.).

1 Ответ

2 голосов
/ 08 февраля 2012

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

Не забывайте о поддержке Saga, что очень удобно, когда у вас есть зависимости между сообщениями. Шина NService предоставляет конечные точки безопасности обмена данными, которые могут быть транзакционными и асинхронными, может быть.

В DDD servicebus дает вашему приложению отличный инструмент для обработки асинхронных событий домена, таких как запуск и сброс. Подходит, когда вы разрабатываете веб-приложение и вам необходимо отправить электронную почту, добавить в Facebook, Twitter, сохранить данные в файл на диске, отправить сообщения в приложения.

Я думаю, что это почти в нашей природе усложнять вещи, поэтому я вижу это как хороший признак самопознания, когда вы говорите: «Я знаю себя и склонен использовать технологии ...». Например, Уди Даан называет себя «Упрощенный программный пакет». Попробуйте сделать это к производству.

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