MSMQ для служебной шины здания CQRS

Как я могу построить собственную служебную шину? Я знаю, что существует множество служебных шин с открытым исходным кодом, таких как NService Bus, Rhino Bus и т. д. Но я хочу учиться, делая это.

1) Как вы будете строить автобус? какие у него характеристики

2) Как я могу сделать его независимым от технологии Queue.. т. е. он должен работать с MSMQ как с лазурной очередью (никогда не работал с лазурной очередью)

3) Как я могу реализовать для него Listener? У меня есть ссылка .. это то, как Nservice Bus сделал (MSMQListner )

4) Как я могу активировать очередь.. могу ли я разместить свой сервис в IIS, чтобы обработка нагрузки не была проблемой (надеюсь на это)

5) Каким будет вариант Host для MSMQ?

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


person satish    schedule 11.04.2011    source источник
comment
Почему бы не прочитать исходный код NServiceBus, Rhino Bus, Mass Transit и т. д.?   -  person Brook    schedule 11.04.2011
comment
Я думаю, что хорошей рекомендацией будет начать с чего-то более простого, например Минибус, чтобы иметь чистый и простая реализация. Как обычно, имея дело со сценариями интеграции, вы будете самостоятельно реализовывать инфраструктурную часть, такие вещи, как сериализация, оболочки обработчиков, ответы и т. д. Вам не следует начинать с фреймворка, вместо этого следует использовать библиотеку обмена сообщениями. созданный на основе MSMQ, лучше всего подходит для обучения. Затем используйте автоматические повторные попытки, политики обработки исключений и параллелизм.   -  person valerysntx    schedule 16.02.2016


Ответы (1)


Вот несколько уроков, которые я усвоил при создании Lokad.CQRS (инфраструктура служебной шины для Windows Azure):

  • Учитесь, читая источники других служебных шин, а затем выбирая лучшие идеи. Попробуйте реализовать. После нескольких итераций вы получите идею.
  • Фактический код служебной шины прост. Но нужно время, чтобы сделать это правильно (я еще далек от этого).
  • Легче построить служебную шину для технологии очереди, чем пытаться отделить ее от реализации очереди.
  • Очереди Azure не близки к MSMQ (нет DTC, гораздо меньшее ограничение на размер сообщения, особенности облака).

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

person Rinat Abdullin    schedule 11.04.2011