[rabbitmq-discuss] JMS/AMQP use case
Jan Van Besien
janvanbesien at gmail.com
Tue Jan 5 14:52:05 GMT 2010
Many thanks for your answers. This already clarified a lot. It also made
me realise that my question was a bit vague in some parts ;-)
Some further remarks inline:
Alexis Richardson wrote:
> 1. Install and run RabbitMQ
> 2. Set up some queues and bindings (perhaps, one for each of your public topics)
> 3. Publish AMQP messages to RabbitMQ
> 4. Consume AMQP messages from RabbitMQ using a Java client.
> 5. In the same Java client, create JMS messages from the payloads of
> the AMQP and forward them to your JMS system
This sounds like a workable aproach to me. Certainly because my setup
will even be a bit easier I think.
What I didn't make clear in my initial question is that the JMS
interface we expose to the "outside" (i.e. the set of topics I
mentioned) is only used to push data from the internal (JMS) system to
external clients. From the perspective of the external clients, it is
This (I think) means that I wouldn't need to consume AMQP messages from
RabbitMQ (step 4 and 5 above). I would only need an internal component
which consumes JMS messages, turns them into AMQP messages and sends
them to rabbitMQ.
If I understand correctly, the "consume JMS messages" part of that
component would not depend on rabbitMQ at all (just a JMS message
listener), and the "turn into AMQP messages and send to rabbitMQ" can be
done with the rabbitMQ java api.
> Have you looked at STOMP? If your infra requires JMS based messaging
> inside for some time, then STOMP is one way to cross the language
> barrier. It's not as powerful as AMQP for defining broker behaviour
> (routing, delivery, qos), but, you don't always need that.
I had never heard of it, but it seems indeed more than enough for my
simple use case. I'll certainly have a closer look at it.
More information about the rabbitmq-discuss