throttle
Description
The throttle feature can slow down traffic to thwart denial of service attacks.
Can be used in
spring:beans, api, bean, if, interceptor, internalProxy, proxy, registration, request, response, serviceProxy, soapProxy, stompProxy, swaggerProxy, transport and wsStompReassembler
Syntax
<throttle delay="long" maxThreads="int" busyDelay="long" />
Listing 1: throttle Syntax
Sample
This sample delays every request for a second and limits the number of concurrent clients to five. After 3 seconds of waiting a client gets a timeout if there are no threads left to serve its request.
<serviceProxy port="2000"> <throttle delay="1000" maxThreads="5" busyDelay="3000"/> <target host="www.predic8.de" /> </serviceProxy>
Listing 2: throttle example
Attributes
Name | Required | Default | Description | Example |
---|---|---|---|---|
busyDelay | false | 0 | If a newly incoming request exceeds maxThreads, the interceptor waits the specified number in milliseconds and retries once before aborting the request. | 3000 |
delay | false | 0 | If non-zero, delays requests by specified number of milliseconds. | 1000 |
maxThreads | false | 0 | If non-zero, newly incoming request are aborted if the number of running requests has reached this limit. | 5 |