[prev in list] [next in list] [prev in thread] [next in thread] 

List:       activemq-dev
Subject:    [jira] [Updated] (AMQ-5361) Allow multiple slow consumer strategies to be used together
From:       "Tim Bain (JIRA)" <jira () apache ! org>
Date:       2014-09-26 20:24:33
Message-ID: JIRA.12741849.1410885748000.134557.1411763073620 () Atlassian ! JIRA
[Download RAW message or body]


     [ https://issues.apache.org/jira/browse/AMQ-5361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel \
]

Tim Bain updated AMQ-5361:
--------------------------
    Summary: Allow multiple slow consumer strategies to be used together  (was: Allow \
for multiple slow consumer strategies to be used together)

> Allow multiple slow consumer strategies to be used together
> -----------------------------------------------------------
> 
> Key: AMQ-5361
> URL: https://issues.apache.org/jira/browse/AMQ-5361
> Project: ActiveMQ
> Issue Type: Improvement
> Components: Broker
> Affects Versions: 5.9.0
> Reporter: Tim Bain
> 
> AMQ-378 allowed a pluggable policy for aborting consumers that were slow, where a \
> consumer was slow if the broker was holding a number of messages for it equal to \
> the consumer's prefetch buffer size, in addition to the same number of messages \
> already in the consumer's prefetch buffer.  AMQ-4621 added the ability to use a \
> different slow consumer strategy and provided one other strategy, to consider a \
> consumer slow if it hasn't acked a message in a certain amount of time. These \
> strategies each has certain things it protects well against while not protecting \
> against others, but I want the ability to be protected from all of them, by being \
> able to select multiple SlowConsumerStrategy implementations for my needs.  This \
> would also allow us to use future SlowConsumerStrategy implementations (e.g. \
> AMQ-5361) alongside the two that exist today. This should be done by extracting \
> from the SlowConsumerStrategy interface a SlowConsumerIdentificationStrategy \
> interface that would determine which consumers were considered slow according to \
> that strategy.  We'd end up with two classers implementing \
> SlowConsumerIdentificationStrategy (e.g. \
> PendingMessagesSlowConsumerIdentificationStrategy and \
> AckDelaySlowConsumerIdentificationStrategy), extracted from \
> AbortSlowConsumerStrategy and AbortSlowAckConsumerStrategy, respectively.  \
> AbortSlowAckConsumerStrategy should go away (anything in it that doesn't belong in \
> AckDelaySlowConsumerIdentificationStrategy belongs in AbortSlowConsumerStrategy or \
> is already there e.g. the run() method), and AbortSlowConsumerStrategy should get a \
> Set<SlowConsumerIdentificationStrategy> to allow multiple different \
> SlowConsumerIdentificationStrategies to be used together.  The union of the results \
> of calling each SlowConsumerIdentificationStrategy's identifySlowConsumers() method \
> should then be passed to abortSubscription().



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic