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 <ja...@carmanconsulting.com>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 <ja...@carmanconsulting.com
> > >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 <d...@akc.org> 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: jcar...@carmanconsulting.com [mailto:
> > jcar...@carmanconsulting.com]
> > > On Behalf Of James Carman
> > > > Sent: Monday, October 07, 2013 8:08 AM
> > > > To: users@camel.apache.org
> > > > 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 <d...@akc.org> 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, d...@akc.org****
> > > >>
> > > >> www.akc.org   Facebook <https://www.facebook.com/AmericanKennelClub
> >
> > > >> Twitter <https://twitter.com/akcdoglovers>****
> > > >>
> > > >> ** **
> > > >>
> > >
> >
> >
> >
> > --
> > *Christian Posta*
> > http://www.christianposta.com/blog
> > twitter: @christianposta
> >
>

Reply via email to