Вопрос

Существует ли продукт (в идеале с открытым исходным кодом, но не обязательно), который позволил бы развертывание с нулевой зависимостью?каждая служебная шина или библиотека очередей, которую мне удалось найти, зависит от одного из приложений очередей (например, msmq) или базы данных.Мне нужно очень легкое решение, в котором я могу просто добавить ссылку на свое приложение, собрать его и развернуть с минимально возможной конфигурацией.

В идеальном мире очередь/служебная шина работала бы на IIS и позволяла бы веб-клиентам и полнофункциональным клиентам взаимодействовать с ней.

Такой инструмент был бы идеален для быстрого прототипирования больших распределенных систем на локальной машине разработки.

Это было полезно?

Решение

Rhino Queues от Ayende — это именно то, что вы ищете, это сообщение в блоге, представляющее его:

http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx

Я думаю, что все ограничения, упомянутые в этом посте, с тех пор были исправлены.

Из сообщения в блоге, что такое очереди носорогов:

  • XCopyable, отсутствие администрирования, встроенный, асинхронная служба очередей
  • Надежность перед лицом сетей
  • поддержка System.Transactions
  • Быстрый
  • Работает через HTTP

Другие советы

Аналогично предложению ShuggyCoUk, вы можете создать очередь (или очереди), используя встроенную базу данных ESENT Windows (уже установленную в Windows).Существует библиотека доступа к управляемому коду (с открытым исходным кодом): http://www.codeplex.com/ManagedEsent.Если вы придерживаетесь записи/чтения CLOB или BLOB, все должно работать нормально.Если вы хотите быть по-настоящему умным, вы можете использовать Нсервисбус и написать (внести свой вклад?) хранилище и транспорт по подписке в стиле ESENT.Есть некоторые попытки использовать ESENT на Блог Айенде а также (вам придется покопаться в его репозитории SVN в поисках пикантных кусочков).

Если ты счастлив быть:

  1. Специально для Windows
  2. Ограничено локальным доменом
  3. Серьезно ограничен поддерживаемый размер сообщения.
  4. Оберните базовые вызовы Win32 в P/Invoke.
  5. Разберитесь с опросом сами
  6. Разберитесь с хаками, необходимыми для обеспечения обратной и обратной связи.
  7. Разберитесь с общей конфигурацией, необходимой для синхронизации имен.

Затем быстрая обертка вокруг окон API почтового слота может быть достаточно.

Этот простой пример является разумной основой для начала.

Эта статья содержит некоторую дополнительную информацию, но предполагает, что вариант использования осуществляется через элемент управления (а не через компонент, как должно быть), а также некоторую плохую интеграцию с WinForms, поэтому его следует рассматривать для случайного чтения, а не как основу для какой-либо библиотеки.

Эта статья это C++, но он соответствует более высокому стандарту (и один комментатор расширил его, чтобы поддерживать группировку больших сообщений в несколько меньших).

Вы получаете 424 байта (то есть с .Net 212 символами), вы можете перейти на ASCII, чтобы удвоить полезную длину сообщения, если вы говорите текст.

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

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

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

Почему нет Амазонка служба сообщений Простая служба очередей?

Мы перенесли наши проекты из MSMQ в ActiveMQ.это правда лучше :)
ActiveMQ — это Открытый исходный код очередь, на основе веб-сервера Apache.
Мы использовали его в производстве при частом рабочем процессе обработки данных, где у msmq большие проблемы (мы работаем с msmq год).
Реализация csharp нмс

В настоящее время я работаю над служебной шиной с открытым исходным кодом на базе WCF.Вы можете найти это здесь: http://rockbus.codeplex.com/.Он поддерживает динамические подписки (@run-time), репозиторий подписок (базу данных), подключаемые транспорты, маршрутизацию на основе контента на основе XPath, доставку транзакций по протоколам wcf, циклическую доставку, подключаемую оценку подписки и многое другое.Взгляни!

Задумывались ли вы об использовании такого сервиса, как IronMQ, с помощью http://Iron.io?

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

В настоящее время не существует локально устанавливаемой версии, но она основана на готовящемся протоколе OpenStack, поэтому она будет.

Кстати, я работаю в Iron.

Пытаться https://github.com/mcintyre321/PieQ — это моя попытка написать потокобезопасную, постоянную, встроенную рабочую очередь без настройки.Вероятно, к нему нужно немного любви, но я думаю, что это именно тот инструмент, который вы ищете.

Я разработал библиотеку InMemory JMS, которую можно использовать для тестирования приложений JMS без реального подключения к поставщикам/серверу JMS (подумайте о hsqldb).Вам не нужно иметь дело с соединением, протоколом или чем-то еще, все, что вам нужно сделать, это отправлять и получать сообщения.

https://github.com/Dhana-Krishnasamy/InMemoryJMS

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top