You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Antoine Chevin <an...@gmail.com> on 2017/01/09 13:34:25 UTC

Implementing consumer broadcast with a single queue with Qpid Java Broker 6.0.4

Hello,

I analyzed if it is possible to broadcast messages using a single queue. I
know I could make the consumers listen to a topic but I noticed that a
temporary queue is created on the broker and I'm afraid of the broker
performance if hundreds of consumers listen to the topic.

So far, I managed to broadcast in 2 ways:
- configure a queue on the broker configured with
"ensureNondestructiveConsumers" and a default filter with a replay period
to not receive all the message when a consumer connect. The problem is that
the messages on the queue are never cleared. A TTL can solve that but I
cannot lose messages.
- configure the dispatch router 0.6.1 to listen to the broker and expose an
address with the distribution "multicast". This works very well.

To cover use cases where only the Qpid java broker can be used, I wonder if
you know other solutions to broadcast a message to consumers using a single
queue?

Thanks in advance,
Best regards,
Antoine

Re: Implementing consumer broadcast with a single queue with Qpid Java Broker 6.0.4

Posted by Rob Godfrey <ro...@gmail.com>.
Hi Antoine,

I'm not sure I'm totally clear on what you mean by "I cannot lose messages"
in this context.  Are you saying that if a consumer is connected, then it
should receive all messages which arrive on the "topic" from the point at
which it connects; but once all consumers have seen a message (or if there
are no consumers connected) it is OK for the message to be deleted?

-- Rob

On 9 January 2017 at 14:34, Antoine Chevin <an...@gmail.com> wrote:

> Hello,
>
> I analyzed if it is possible to broadcast messages using a single queue. I
> know I could make the consumers listen to a topic but I noticed that a
> temporary queue is created on the broker and I'm afraid of the broker
> performance if hundreds of consumers listen to the topic.
>
> So far, I managed to broadcast in 2 ways:
> - configure a queue on the broker configured with
> "ensureNondestructiveConsumers" and a default filter with a replay period
> to not receive all the message when a consumer connect. The problem is that
> the messages on the queue are never cleared. A TTL can solve that but I
> cannot lose messages.
> - configure the dispatch router 0.6.1 to listen to the broker and expose an
> address with the distribution "multicast". This works very well.
>
> To cover use cases where only the Qpid java broker can be used, I wonder if
> you know other solutions to broadcast a message to consumers using a single
> queue?
>
> Thanks in advance,
> Best regards,
> Antoine
>