activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hiram Chirino <>
Subject Re: How can a broker stop a STOMP producer?
Date Fri, 26 Aug 2011 13:48:06 GMT

Right now in apollo we suspend doing more socket reads from the
blocked producer.  And like you said, a connection always can accept
at least one message, so if you couple that with synchronous sends
then the client can just use a timeout strategy to figure out that he
has been blocked.

Note that on a high throughput producer, he will be blocked many times
per second even though he's moving a large volume of messages.



On Fri, Aug 26, 2011 at 5:34 AM, Lionel Cons <> wrote:
> In Apollo, one can set slow_consumer_policy=block for a topic. This is
> described as:
>  the producers block on slow consumers which makes producers only as
>  fast as the slowest consumer on the topic
> I guess one can achieve something similar in ActiveMQ too.
> But how can a broker block a producer over STOMP where it doesn't know
> what the next client frame will be?
> Does this translate into returning an ERROR frame for a SEND frame to
> the "blocked topic"?
> Does it mean stop reading from the producer after the first SEND frame
> is received? If yes, what happens for new clients? Are they all
> allowed to send one message before being blocked?
> FWIW, we have a typical use case with many distributed clients
> connecting over STOMP just to send one message and then disconnect.
> Cheers,
> Lionel

View raw message