Here is the scenario:
A servlet endpoind is serving requests from 1000 clients. A custom setting
for each client is maintained around maximum concurrent requests that can be
processed and the maximum number of messages that can be queued. Client id
is a part of payload.
i.e. ClientA - Maximum 5 requests would be processed concurrently for
ClientA. If the concurrent limit is reached, next 10 requests would be
queued from that client. If both the limits are reached, requests will be
rejected with specific error message.
These limits are different for ClientB.
Any help would be highly appreciated :)
Things I tried so far:
1. Created a custom RoutePolicy & maintained a ConcurrentHashMap to track
requests from clients. Inside onExchangeBegin, if max limit is reached
exception is being thrown. Couldn't manage to put these messages in queue.
View this message in context: http://camel.465427.n5.nabble.com/Request-throttling-queue-limit-based-on-client-id-tp5763831.html
Sent from the Camel - Users mailing list archive at Nabble.com.