Используя JMS, есть ли способ хранить сообщения на периодически отключенных клиентах и пересылать их брокеру, когда сеть доступна?
Я рассматриваю архитектуру, в которой у меня есть клиенты, которые периодически подключаются к сети. Я хотел бы хранить сообщения, созданные на этих клиентах, в очереди JMS, когда сеть недоступна, и пересылать их центральному посреднику сообщений, когда клиенты находятся в сети. (Пользователь имеет контроль над сетью, например, набор номера, поэтому это не прерывистое соединение, как с мобильным телефоном.)
Существуют ли реализации JMS, которые предоставляют эту функцию?
2 ответа
Вы можете встраивать брокера activeMQ в свое приложение
http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html
Затем, я полагаю (не проверял), что вы могли бы использовать функции ActiveMQ, которые позволяют отправлять сообщения через сеть брокеров, используя функцию обнаружения брокеров,
http://activemq.apache.org/clustering.html
или просто добавив серверную очередь потребителя очереди, а затем отправив запрос через других посредников через этого потребителя.
Надеюсь, поможет.
Открытая очередь сообщений Glassfish может быть встроена (или запущена в автономном режиме) в версию 4.4 (Поддерживает возможность брокера запускать "в процессе" с любым клиентом.). Он очень легкий и будет поддерживать другие языки клиентов по протоколу STOMP в версии 4.4 - кроме Java и C. - https://mq.dev.java.net/4.4.html