Соглашения об именовании очередей NServiceBus

#msmq #nservicebus #naming

#msmq #nservicebus #именование

Вопрос:

Кто-нибудь разработал приличное соглашение об именовании для очередей MSMQ при использовании NServiceBus, где на одном сервере много очередей, но также и на других серверах?

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

Было бы неплохо иметь возможность открыть консоль управления msmq и сразу узнать назначение всех очередей.

Приветствия

Ответ №1:

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

На самом деле у нас нет очередей, отличных от NServiceBus, поэтому нам не нужно добавлять к ним префикс «nsb_», как предложил Адам Файлс.

Нам нравится использовать разделенные точками обозначения, которые примерно имитируют пространства имен классов, например «ProjectName.QueueName».

Или для действительно больших проектов, где выполняется больше анализа границ служб в стиле Udi, мы сделаем что-то вроде «BigProjectName .ServiceName.QueueName».

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

Комментарии:

1. 1 для центральной очереди ошибок (и аудита), хотя она не обязательно должна находиться в кластере

2. Спасибо, Дэвид, это сочетание того, о чем мы с Хью думали. «Используйте наиболее подходящее наименование для ситуации».

Ответ №2:

Что я делаю

  • Имя приложения.Ввод
  • Имя приложения.Ошибка
  • Имя приложения.Ввод.Аудит

Комментарии:

1. Вам когда-нибудь понадобится другой уровень в этом методе, например <ApplicationName> . <Компонент>. <Тип очереди>?

2. Нет. Причиной этого является состав или детализация моего сервиса. У меня есть только одна конечная точка на общий хост NSB.

Ответ №3:

Мы используем nsb_ $endpoint_ $function где $function = ошибка или аудит. функция $ отключена только для конечной точки. Мы также сопоставляем отображаемое имя и имя службы при установке хоста. Нашим администраторам нравится сопоставлять процесс со службой, а затем с очередью.