node-throttler v0.1.0
node-throttler
node-throttler is a HTTP traffic throttler.
Installation
npm install node-throttler
Overview
node-throttler is built on top of node-http-proxy. It provides following features.
- throttles traffic by setting a maximum request rate threshold
- throttles traffic by setting a maximum response time threshold
- applies different throttle rates to different URL patterns
Usage
- Starts node-throttler
proxy --config <config_file> --log <log_level>
where config is a JSON configuration file and log defines the logging level.
- Runs tests
make test
- Generates JS documents
make docs
Configuration
The configuration file is itself a JSON object consists of following fields.
local_port
the port on which the throttler will listenremote_host
the host of the remote service to be throttledremote_port
the port of the remote service to be throttledthrottle_type
either rps or averespthrottle_key_config
defines how the throttle rate key is calculated from the request object. If absent, a constant value is used which means the same threshold value will be applied to all requeststhrottle_threshold_config
defines how the threshold value is calculated for a request. If it is a constant number, then the value will be applied to all requestsmax_throttle_time
defines the maximum throttle time allowed.
Following fields only apply to rps style
- max_queue_len
maximum number of requests can be queued before further requests are rejected
Following fields only apply to averesp style
max_sample_age
the oldest sample that can be used to compute average response timemin_sample_size
the minimum sampel size required to compute average response timemax_sample_size
the maximum sampel size required to compute average response time
License
MIT License
11 years ago