Есть ли способ с помощью JMS хранить сообщения периодически отключающихся клиентов и пересылать их брокеру, когда сеть доступна?

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

Существуют ли какие-либо реализации JMS, обеспечивающие эту функцию?


person Ken Liu    schedule 19.03.2009    source источник


Ответы (2)


Вы можете встроить брокера ActiveMQ в свое приложение.

http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html

Затем я предполагаю (не проверял), что вы можете использовать функции ActiveMQ, которые позволяют отправлять сообщения через сеть брокеров, используя функцию обнаружения брокеров,

http://activemq.apache.org/clustering.html

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

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

person Laurent K    schedule 20.03.2009
comment
Также можно сделать эту очередь постоянной. - person Robin; 20.03.2009
comment
Интересный! Я оценивал ActiveMQ как поставщика JMS. Есть ли способ программно контролировать, пытается ли встроенный брокер отправлять сообщения? Я хотел бы отключить брокера, если клиент не готов отправлять сообщения. - person Ken Liu; 20.03.2009

Очередь открытых сообщений Glassfish может быть встроена (или запущена автономно) в версии 4.4 (поддерживается возможность брокера работать «в процессе» с любым клиентом). Он очень легкий и будет поддерживать другие клиентские языки по протоколу STOMP в версии 4.4, помимо Java и C. - https://mq.dev.java.net/4.4.html

person mjn    schedule 22.03.2009