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 > > >