The solution could be something like:
from("...")
.throttle(100, header("foo"))
.to("...");
header("foo") is only an example for an expression...
Best,
Christian
-----------------
Software Integration Specialist
Apache Camel committer: https://camel.apache.org/team
V.P. Apache Camel: https://www.apache.org/foundation/
Apache Member: https://www.apache.org/foundation/members.html
https://www.linkedin.com/pub/christian-mueller/11/551/642
On Wed, Oct 9, 2013 at 5:11 AM, James Carman <[email protected]>wrote:
> That is not exactly what the request is about. It is not throttling only
> certain clients. It is throttling all clients but throttling them
> individually. For example, clients cannot send more than 5 requests per
> minute per some SLA.
>
> On Tuesday, October 8, 2013, Christian Posta wrote:
>
> > I'll open a JIRA. This seems like a nice feature on the Throttler EIP to
> > throttle for certain groups.
> >
> > However, couldn't you just route to the throttler?
> >
> >
> >
> from(input).choice().when(clientIdMatch).to("seda:throttle").otherwise().to("direct:service")
> >
> > from("seda:throttle").throttle().to("direct:service")
> >
> >
> > On Tue, Oct 8, 2013 at 6:57 AM, James Carman <[email protected]
> > >wrote:
> >
> > > The idea would be basically what Claus said. You'd have an expression
> > > you use in order to "correlate" messages with one another. This
> > > expression would be evaluated against incoming messages and the result
> > > would be used to lookup the throttling state for that group in some
> > > map (probably a ConcurrentHashMap wrapped by LRU to prevent memory
> > > leaks or something).
> > >
> > > On Mon, Oct 7, 2013 at 3:51 PM, Daniel Bularzik <[email protected]> wrote:
> > > > So obviously, instead of asking "Is there a way..." I should have
> asked
> > > "How do I..."
> > > >
> > > > Consider this a restatement of my original question. How would I go
> > > about doing this? A summary of a whiteboard implementation would be
> > > sufficient.
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: [email protected] [mailto:
> > [email protected]]
> > > On Behalf Of James Carman
> > > > Sent: Monday, October 07, 2013 8:08 AM
> > > > To: [email protected]
> > > > Subject: Re: Throttling by client ID?
> > > >
> > > > I actually had to implement that on a whiteboard when interviewing
> for
> > a
> > > certain tech company. It's not terribly difficult to implement such a
> > > beast.
> > > >
> > > >
> > > > On Mon, Oct 7, 2013 at 7:59 AM, Daniel Bularzik <[email protected]> wrote:
> > > >
> > > >> We're looking to enforce a per-client SLA; notably, right now we're
> > > >> considering how to throttle service use on a per-client basis. I've
> > > >> found the Throttler Pattern, but this appears to only useful for
> > > >> throttling overall use of the service. Is there a way to use
> Throttler
> > > >> to limit access on a per-client basis? Assume the client ID is
> > > >> available in the exchange.*
> > > >> ***
> > > >>
> > > >> ** **
> > > >>
> > > >> Daniel Bularzik, Lead Software Engineer****
> > > >>
> > > >> ****8051 Arco Corporate Drive, Suite 100, Raleigh, NC 27617****
> > > >>
> > > >> 919-816-3818, [email protected]****
> > > >>
> > > >> www.akc.org Facebook <https://www.facebook.com/AmericanKennelClub
> >
> > > >> Twitter <https://twitter.com/akcdoglovers>****
> > > >>
> > > >> ** **
> > > >>
> > >
> >
> >
> >
> > --
> > *Christian Posta*
> > http://www.christianposta.com/blog
> > twitter: @christianposta
> >
>