[rabbitmq-discuss] Publish messages only when needed ?

RomainC romain.conseil at gmail.com
Thu Oct 7 10:09:57 BST 2010


I am working with rabbitMQ + lvc plugin on a prototype of telemetry
diffusion with :
- up to 10 producers (1 exchanges by producer) located on the rabbit-server
- up to 10 remote/local consumers (2 queues by consumer) 
- up to 10000 messages/s (max 78byte/message) splitted on the different
- a consumers only subscribe to a part of the whole flow of messages.
- java language api

Everything is working fine but my prototype is using a large amount of CPU
time and memory. I even experienced some 'out of memory' crash of the server
in extreme cases.

I try to find some ways to enhance this. So my question : would it be
possible to publish essages to the exchange only if there is at least one
consumer that subscribed this message ? In other words, I would like to
implement a kind of binding listener on exchanges and a way to request the
list of bindings (in Java).

I searched the api and it doesn't seem to be available. I am also aware that
this breaks the publisher/subscriber model since the publisher doesn't have
to carry about diffusion, it just publishes.

So what do you think about that, am I completely wrong ?
Is there a way to implement such a feature (I saw that this was possible to
request bindings thanks to the erlang client rabbitctl in rabbit_control.rl)

Thanks a lot for your help. 
View this message in context: http://old.nabble.com/Publish-messages-only-when-needed---tp29904396p29904396.html
Sent from the RabbitMQ mailing list archive at Nabble.com.

More information about the rabbitmq-discuss mailing list