Throttling and Timeout Properties

Throttling and Timeout Properties describes the properties for configuring SBA Gateway throttling and timeouts.

Table 1. Throttling and Timeout Properties
Property Description
gateway.timeouts.idleTimeout The idle timeout, in milliseconds, after which the channel is closed. A value of 0 causes the channel to stay open indefinitely. The default value is 0.
gateway.timeouts.requestParseTimeout The maximum allowed time, in milliseconds, for reading an HTTP request. The default value is -1.
gateway.timeouts.noRequestTimeout The amount of time, in milliseconds, the connection can be idle with no current requests before it is closed. The default value is 60000.
gateway.throttling.maxRatePerConsumer The maximum number of requests per time interval allowed from each consumer, by source IP address. Requests exceeding this rate receive a 429 Too Many Requests response. The default value is 0.
gateway.throttling.maxRate The maximum number of all requests per time interval. The default value is 0.
gateway.throttling.timeIntervalMillis The time interval, in milliseconds, used for maxRate and maxRatePerConsumer calculations. The default value is 1000.
gateway.throttling.maxRateUrlWhiteList List of URLs to exclude from maxRate calculations. The default list is the following:
- "/healthcheck"
- "/readycheck"
- "/version"

The following gateway.yaml excerpt shows the common configuration default values (where defaults exist) for these properties:

  timeouts:
    # The idle timeout in milliseconds after which the channel will be closed.
    # (zero is unlimited)
    idleTimeout: 0
    # The maximum allowed time of reading HTTP request in milliseconds.
    # (-1 to disable)
    requestParseTimeout: -1
    # The amount of time the connection can be idle with no current requests before it is closed
    # (-1 to disable)
    noRequestTimeout: 60000

  throttling:
    # Max rate (requests per time interval) allowed from 
    # each consumer (by source IP). Requests exceeding this rate will
    # be responded to with a 429 Too Many Requests.
    maxRatePerConsumer: 0
    # Max total rate (requests per time interval).
    maxRate: 0
    # Time interval used for maxRate calculations (milliseconds)
    timeIntervalMillis: 1000
    # List of URLs that should be excluded from maxRate calculations
    maxRateUrlWhiteList:
      - "/healthcheck"
      - "/readycheck"
      - "/version"