[rabbitmq-discuss] Using RabbitMQ as Messaging Exchange

Ben Hood 0x6e6562 at gmail.com
Sun Aug 24 17:42:10 BST 2008


Pete,

On Sun, Aug 24, 2008 at 3:35 PM, Pete Kay <petedao at gmail.com> wrote:
> What I am planning to do is to have C clients publishing some events ( as
> text message ) to RabbitMQ and on the other side, I would have Jave clients
> that need to listen on the messages.
>
> The tricky part is that I need something in between Java clients and
> RabbitMQ to do the brokering based on an ID.  For example, the C clients
> will associate each event with an ID.  Each Java client may listen to events
> of one or more IDs.  I am not sure if I can program that brokering rule
> within RabbitMQ or I need a singleton client to listen on all messages
> coming out of RabbitMQ and then do the brokering to the end-clients.

This could be handled quite simply with plain jane AMQP, for example
using a direct exchange.

Without wanting to be boring, the spec explains how you would do this
quite well:

The direct exchange type works as follows:

 1. A message queue binds to the exchange using a routing key, K.
 2. A publisher sends the exchange a message with the routing key R.
 3. The message is passed to the message queue if K = R

So you don't need to do this yourself, because this is the type of
thing that the broker will do for you.

BTW, we don't have a C client ATM that you can use out of the box :-(

This is, amongst many other things, on our todo list, but being an
open source outfit, we don't have unlimited resources.

So for anybody interested in a C client, I can only re-iterate how
easy (and rewarding, because you would get a Rabbit T-Shirt) it would
be to write an AMQP client in C  -  see this guide about how to do it
: http://hopper.squarespace.com/blog/2008/6/21/build-your-own-amqp-client.html

We do of course, have a Java client that we maintain.

HTH,

Ben




More information about the rabbitmq-discuss mailing list