Я просто читал abit о JMS и Apache ActiveMQ. И интересно, какое использование в реальном мире людей используют здесь JMS или аналогичные технологии очереди сообщений?Использование в реальном времени JMS/очередей сообщений?
ответ
JMS (ActiveMQ - реализация брокера JMS) может использоваться как механизм, позволяющий обрабатывать асинхронные запросы. Вы можете сделать это, потому что запрос занимает много времени, или потому что несколько сторон могут быть заинтересованы в фактическом запросе. Еще одна причина для его использования - разрешить нескольким клиентам (потенциально написанным на разных языках) доступ к информации через JMS. ActiveMQ - хороший пример, потому что вы можете использовать протокол STOMP для доступа к клиенту C#/Java/Ruby.
Примером настоящего мира является веб-приложение, которое используется для размещения заказа для конкретного клиента. В рамках размещения этого заказа (и хранить его в базе данных) вы можете выполнять ряд дополнительных задач:
- магазин порядок в каком-серверную систему третьей стороны (например, SAP)
- Отправить по электронной почте клиенту, чтобы сообщить им, что их заказ был размещен
для этого код приложения будет опубликовать сообщение в очередь JMS, который включает в себя идентификатор заказа. Одна часть вашего приложения, слушающего очередь, может ответить на событие, взяв orderId, посмотрев порядок в базе данных и затем разместив этот заказ с другой сторонней системой. Другая часть вашего заявления может нести ответственность за получение заказа и отправку электронного письма клиенту.
Используйте их все время для обработки длительных операций асинхронно. Веб-пользователь не захочет ждать более 5 секунд для запроса на обработку. Если у вас есть тот, который работает дольше, один проект должен отправить запрос в очередь и немедленно отправить обратно URL-адрес, который пользователь может проверить, чтобы узнать, когда задание будет завершено.
Публикация/подписка - еще одна хорошая техника для развязывания отправителей от многих приемников. Это гибкая архитектура, потому что абоненты могут приходить и уходить по мере необходимости.
После прочтения вашего ответа я собираюсь добавить JMS в свою очередь «Что я буду изучать в этом году» :) – Roman
В наши дни вместо использования спецификации JMS мы можем использовать асинхронные вызовы методов. Для получения дополнительной информации см. Https://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html – geo
Они не совсем то же самое. Нет гарантированной доставки с вызовом метода асинхронного вызова; нет понятия тем, которые могут сразу отправить нескольким слушателям. – duffymo
Распределенные (a) синхронные вычисления.
Примером реального мира может служить общепринятая инфраструктура уведомлений, которая отправляет письма заинтересованным сторонам в разных точках в ходе использования приложения. Таким образом, приложение будет действовать как Producer
, создав объект Message
, положив его на конкретный Queue
и двигаясь вперед.
Там был бы набор Consumer
s, который подписался на Queue
, и позаботится о том, чтобы послать через Message
. Обратите внимание, что в ходе этой транзакции Producer
s отделены от логики того, как будет обрабатываться данный Message
.
Механизмы обмена сообщениями (ActiveMQ и подобные) действуют в качестве основы для облегчения таких транзакций Message
, предоставляя MessageBroker
с.
Я хочу асинхронную обработку, потому что RestService Api синхронно. Как это сделать с помощью ActiveMq и Jms.Пожалуйста, помогите в этом. http://stackoverflow.com/questions/19706788/jersey-rest-web-service-with-activemq-middleware-integration. Спасибо за вашу помощь и время. – Kumar
Мы использовали сообщений для создания онлайн Котировки
У меня было так много удивительных применений для JMS:
Web чат общение для обслуживания клиентов.
Отладка протоколов на бэкэнд. Все серверы приложений транслировали отладочные сообщения на разных уровнях. Затем можно запустить JMS-клиент для просмотра отладочных сообщений. Конечно, я мог бы использовать что-то вроде syslog, но это дало мне всевозможные способы фильтрации вывода на основе контекстной информации (например, имя сервера приложений, api-вызов, уровень журнала, идентификатор пользователя, тип сообщения и т. Д.). Я также раскрасил результат.
Отладка протоколирования в файл. То же, что и выше, только отдельные части были вытащены с использованием фильтров и записаны в файл для общего ведения журнала.
Предупреждение. Опять же, аналогичная настройка для вышеуказанного ведения журнала, просмотр определенных ошибок и оповещение людей различными способами (электронная почта, текстовое сообщение, чат, всплывающее окно Growl ...)
Динамическая настройка и управление кластерами программного обеспечения. Каждый сервер приложений будет транслировать сообщение «настроить меня», а затем демон конфигурации, который будет отвечать сообщением, содержащим все виды информации о конфигурации. Позже, если все серверы приложений нуждались в их настройках, они сразу менялись, это можно было сделать из демона конфигурации.
И обычно - в очередь операций за несвоевременные деятельности, таких как выставление счетов, обработки заказов, предоставление, генерации электронной почты ...
Это здорово в любом месте вы хотите, чтобы гарантировать доставку сообщений асинхронно.
Мы используем его для инициирования асинхронной обработки, которую мы не хотим прерывать или конфликтовать с существующей транзакцией.
Например, у вас есть дорогая и очень важная часть логики, например, «покупать вещи», важной частью покупки будет «уведомление магазина вещей». Мы делаем асинхронный вызов уведомления так, чтобы любая логика/обработка, участвующая в вызове уведомления, не блокировала или не конкурировала с ресурсами с логикой покупки. Конечный результат, покупка завершена, пользователь счастлив, мы получаем наши деньги и потому, что в очереди гарантируется доставка, магазин получает уведомление, как только он открывается, или как только в очереди будет новый элемент.
Пожалуйста, помогите нам в этом. http://stackoverflow.com/questions/19706788/jersey-rest-web-service-with-activemq-middleware-integration. Спасибо за вашу помощь и время. – Kumar
Но из-за запроса асинхронно из-за проблемы с сетью ваше сообщение может не отправляться. Как насчет этого? Когда вы хотите купить вещи, ваше нитирование должно быть отправлено. не так ли? – grep
Я видел JMS, используемый в различных коммерческих и академических проектах. JMS может легко войти в вашу фотографию, когда вы хотите иметь полностью развязанные распределенные системы. Вообще говоря, когда вам нужно отправить свой запрос с одного узла, и кто-то из вашей сети позаботится об этом без/с предоставлением отправителю любой информации о получателе.
В моем случае я использовал JMS для разработки ориентированного на сообщения промежуточного программного обеспечения (MOM) в моей тезисе, где конкретные типы объектно-ориентированных объектов сгенерированы с одной стороны в качестве вашего запроса и скомпилированы и выполнены на другом как ваш ответ.
Я использовал его для отправки внутридневных сделок между различными системами управления фондами. Если вы хотите узнать больше о том, что такое отличная технология обмена сообщениями, я могу полностью рекомендовать книгу «Enterprise Integration Patterns». Есть несколько примеров JMS для таких вещей, как запрос/ответ и публикация/подписка.
Обмен сообщениями - отличный инструмент для интеграции.
Apache Camel используется в сочетании с ActiveMQ является отличным способом, чтобы сделать Enterprise Integration Patterns
Мы используем JMS для связи с системами в огромном количестве удаленных участков на ненадежные сети.Свободное соединение в сочетании с надежным обменом сообщениями создает стабильный системный ландшафт: каждое сообщение будет отправлено, как только это будет технически возможно, большие проблемы в сети не повлияют на весь ландшафт системы ...
Я использовал его для моего академического проекта, который был онлайн-магазином, похожим на Amazon. JMS используется для обработки следующих функций:
- Обновление позиции заказов, размещенных клиентами, так как груз перемещается из одного места в другое. Это было сделано путем непрерывной отправки сообщений в очередь JMS.
- Предупреждение о любых необычных событиях, таких как отгрузка, отложенная, а затем отправка электронной почты клиенту.
- Если доставка достигла своего пункта назначения, отправка события доставки.
У нас было несколько удаленных клиентов, подключенных к основному серверу. Если соединение доступно, они используют для доступа к основной базе данных или если не используют свою собственную базу данных. Для обеспечения согласованности данных мы реализовали механизм 2PC. Для этого мы использовали JMS для обмена сообщениями между этими системами, в то время как один из них выступал в качестве координатора, который инициирует процесс, отправив сообщение в очередь, а другие ответят соответствующим образом, отправив обратно сообщение в очередь. Как уже упоминалось, это было похоже на pub/sub model.
- 1. Изменения в реальном времени в реальном времени
- 2. Обновление в реальном времени в реальном времени
- 3. индексирование реального времени в реальном времени
- 4. Использование deepstream.io для голосования в реальном времени
- 5. Использование спящего режима в реальном времени
- 6. Использование абстрактного класса в реальном времени
- 7. Использование X-Macros в реальном времени
- 8. Использование D для приложения в реальном времени?
- 9. Использование NSTimer в реальном времени - Swift
- 10. Длинный опрос для сообщений/обновлений в реальном времени
- 11. iPhone GUI для отображения сообщений журнала в реальном времени
- 12. многократное выполнение для обработки сообщений в реальном времени
- 13. Извлечение сообщений в реальном времени YouTube Live Stream
- 14. kafka-node не получает сообщений в реальном времени
- 15. Монитор vim-сообщений в реальном времени, внутри независимого буфера
- 16. Обновление postDate в реальном времени
- 17. Анимация вращения в реальном времени?
- 18. Получайте обновления в реальном времени в реальном времени в Kafka
- 19. Использование node.js для отображения сообщений в реальном времени о сообщениях в приложении PHP
- 20. rails приложение в реальном времени
- 21. Защищенная связь в реальном времени
- 22. Обработка звука в реальном времени в реальном времени
- 23. Игра в реальном времени Django в реальном времени
- 24. Соберите данные в реальном времени в реальном времени facebook
- 25. Обновление в реальном времени GWT CEll в реальном времени
- 26. Обновления в реальном времени в реальном времени с сервера
- 27. Обмен сообщениями в реальном времени в реальном времени
- 28. Фильтрация видео в реальном времени в реальном времени
- 29. не в реальном времени/не в реальном времени сортировка JTable
- 30. Приложение в реальном времени Android
Привет, @ jon, вы видели этот тег Документации? https://stackoverflow.com/documentation/jms/commit им просто нужна одна поддержка коммиттера, чтобы включить тему, я думаю, что вы можете быть тем, кто дает им возможность дать нам потрясающие документы на JMS – juanmf
@ Как я понимаю jms сама по себе является реализацией шаблона интеграции предприятия? – valik
Нет, Мул или Верблюд ... – Jon