Nope, slow consumer strategies and pending message limit strategies are
orthogonal; messages are discarded because there are two many of them
pending and you've configured a pending message limit strategy, not
necessarily because consumers are considered slow.  (In fact, depending on
your settings, your use of a pending message limit strategy could cause
your slow consumer strategy from kicking in if you're preventing enough
pending messages from building up to cross the threshold of the consumer's
prefetch buffer.)

A pending message limit strategy is to me most useful for handling the
situation where a consumer is disconnected entirely rather than one where
it's slow.  But you can get the same protection from using a message
expiration on your messages if you control the producers and it's easier to
reason about whether queue consumers will process an old message when they
reconnect if you use message expiration (because you guarantee that all
messages older than a given time are gone, rather than having N of the
"highest priority" sitting around forever waiting to be consumed when
someone comes back), so I prefer message expiration.  But a pending message
limit strategy is useful if you don't control the producers (and aren't
willing to use an embedded Camel route to set the expiration when each
message hits the broker).

I'd expect the pending message strategy to be applicable to all messages in
a queue, but I'd expect it to apply to each consumer on a topic
independently (after applying selectors, so some consumers might get
messages evicted while others didn't need to).

Also, keep in mind that for a topic, each consumer gets its own copy of the
message; a message that is evicted for one consumer would not be handed to
any other consumer, since they've already gotten their copy.

Tim

On Sun, Mar 1, 2015 at 5:04 PM, Kevin Burton <bur...@spinn3r.com> wrote:

> And I can’t tell if it’s saying that messages are evicted from the entire
> QUEUE or just messages target for that consumer.
>
> I’m looking at TopicSubscription to try to figure it out and it’s unclear
> if it’s just for messages targeted to a specific consumer which are then
> placed *back* into the queue for other consumers to handle (which would be
> reasonable behavior I think).
>
> On Sun, Mar 1, 2015 at 4:00 PM, Kevin Burton <bur...@spinn3r.com> wrote:
>
> > Message eviction seems to be not well documented so I’m confused.
> >
> > If I have a slow consumer, does the broker actually *delete* messages?
> >
> > So if I have an errant consumer, configured incorrectly, this will impact
> > production because messages are just removed from the queue?
> >
> >
> > --
> >
> > Founder/CEO Spinn3r.com
> > Location: *San Francisco, CA*
> > blog: http://burtonator.wordpress.com
> > … or check out my Google+ profile
> > <https://plus.google.com/102718274791889610666/posts>
> > <http://spinn3r.com>
> >
> >
>
>
> --
>
> Founder/CEO Spinn3r.com
> Location: *San Francisco, CA*
> blog: http://burtonator.wordpress.com
> … or check out my Google+ profile
> <https://plus.google.com/102718274791889610666/posts>
> <http://spinn3r.com>
>

Reply via email to