NServiceBus обновляет стратегию основной версии - PullRequest
0 голосов
/ 22 сентября 2018

Я читал о последствиях обновления NServiceBus до новой основной версии, например, с версии 6.xx до 7.xx

На сайте ParticularDocs, Руководства по обновлению говорит следующее:

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

Но если вы прочитаете о сообщениях ненавязчивого режима , это говорит о следующем:

Контракты сообщений могут быть определены с использованием простых классов или интерфейсов.Чтобы NServiceBus мог найти эти классы при сканировании сборок, они должны быть помечены интерфейсом IMessage, который по сути говорит: «это определение сообщения».Это позволяет отделить контракты сообщений от сборки NServiceBus.

Эта зависимость может вызвать проблемы, когда существуют разные сервисы, которые запускают разные версии NServiceBus.Джонатан Оливер отлично справился с этой задачей . .

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

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

Если я не понял неправильно:

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

Единственный способ избежать этого - использовать Unobstrusive Mode Messages?

У нас есть все сообщения, реализующие IEvent или ICommand.Изменение на Unobstrusive Mode Messages было бы неудобством прямо сейчас.

1 Ответ

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

После небольшого осмотра, есть решение, которое я упустил, вы можете использовать перенаправление сборки, которое должно работать для v 5.x и выше.

Надеюсь, это поможет

...