[Openstack] Distributed rate-limiting

Jay Pipes jaypipes at gmail.com
Sat Mar 17 16:31:32 UTC 2012


Rock. On.

Kevin, you've really impressed me. Well documented, well thought-out code.

I hope you won't mind if I contribute a REST-ful interface for 
configuration management and status reporting?

Best,
-jay

On 03/16/2012 05:45 PM, Kevin L. Mitchell wrote:
> Howdy, folks.  I've been working on a replacement for nova's
> rate-limiting middleware that will handle the multiple-node case, and
> I've developed a fairly generic rate-limiting package, along with a
> second package that adapts it to nova.  (This means you could also use
> this rate-limiting setup with, say, glance, or with any other project
> that uses Python middleware.)  Here is some information:
>
> * Turnstile
>          Turnstile is a piece of WSGI middleware that performs true distributed
>          rate-limiting.  System administrators can run an API on multiple
>          nodes, then place this middleware in the pipeline prior to the
>          application.  Turnstile uses a Redis database to track the rate at
>          which users are hitting the API, and can then apply configured rate
>          limits, even if each request was made against a different API node.
>
>          - https://github.com/klmitch/turnstile
>          - http://pypi.python.org/pypi/turnstile
>
> * nova_limits
>          This package provides the ``nova_limits`` Python module, which
>          contains the ``nova_preprocess()`` preprocessor, the
>          ``NovaClassLimit`` limit class, and the ``NovaTurnstileMiddleware``
>          replacement middleware class, all for use with Turnstile.  These
>          pieces work together to provide class-based rate limiting integration
>          with nova.
>
>          - https://github.com/klmitch/nova_limits
>          - http://pypi.python.org/pypi/nova_limits
>
> Both packages should be fairly well documented (start with README.rst),
> and please feel free to log issues or make pull requests.




More information about the Openstack mailing list