ActiveMQ MOM против удаленного метода против общей базы данных для архитектуры SOA в ColdFusion? - PullRequest
0 голосов
/ 29 июня 2011

Мы на перекрестке архитектуры.

В предыдущей системе использовалась общая БД для связи друг с другом, но мы хотим избавиться от задержки опроса cfschedule.Вся подсистема написана на CF.

Я исследую MOM, в основном, вероятно, ActiveMQ, поскольку CF поставляется с шлюзом событий для него или базовыми вызовами удаленных методов.Дополнительный вопрос: будет ли использование *.cfc?method= через http более быстрым, чем вызов их в качестве веб-служб SOAP?

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

Кроме того, мы будем использовать стандарт CF, поэтому в шлюзе событий ограничен 1 поток и 2 пользовательских потока одновременно.

Любой совет или предложениеБуду признателен, спасибо!

1 Ответ

2 голосов
/ 01 июля 2011

Учитывая, что вы спрашиваете о замене разделяемой БД ActiveMQ или удаленным вызовом метода, я предполагаю, что ваш сценарий использования - это действительно передача сообщений по сравнению с общим состоянием приложения;Совместно используемая база данных, очевидно, является хорошим способом создания общего состояния для нескольких приложений.Ваше описание также заставляет меня думать, что ваше приложение отправляет уведомление или событие другим приложениям, потому что произошло что-то интересное ...

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

MOM, и, в частности, ActiveMQ, является отличным подходом кнадежная и асинхронная отправка сообщений одному или нескольким получателям.Отправляющее приложение отправляет ActiveMQ сообщение, а затем продолжает выполнять свою работу (не блокирует ваше приложение для выполнения дополнительной работы).Получатель (и) сообщений получит сообщение, когда они подключены к ActiveMQ, то есть, если они подключены, когда сообщение отправлено, это эффективно так же быстро, как и удаленный метод;если получатель подключится позднее, он получит при подключении (без опроса).ActiveMQ обеспечивает безопасность сообщения до тех пор, пока получатель не подтвердит получение.

Если вы отправляете события, использование системы обмена сообщениями, такой как ActiveMQ, действительно хорошо, поскольку вы можете использовать парадигму, называемую публикация / подписка, где сообщения (события) могутбыть доставлено нескольким получателям.Эти получатели неизвестны отправляющей заявке;им просто нужно знать, как подключиться к ActiveMQ.Эта парадигма - отличный способ отделить ваши приложения;Ваше приложение отправляет интересные события, а другие приложения, которым может быть полезно знать, что событие произошло, могут подключаться к ActiveMQ в будущем ...

Отличным ресурсом для многих шаблонов интеграции, включая публикацию / подписку, является Грегор Хопе Шаблоны интеграции предприятия сайт.Дополнительную информацию об ActiveMQ можно найти в Apache ActiveMQ или на сайте ActiveXQ FuseSource site

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

Scott

...