[Openstack] Distributed rate-limiting
Rohit.Karajgi at nttdata.com
Wed Dec 5 14:12:52 UTC 2012
Sorry to bring alive a fairly old thread, but I had a few questions on Nova's rate limiting in a distributed/ load balanced Openstack environment.
My understanding is Turnstile manages the situation where, the in-memory rate limits that are configured on load balanced API servers
are imposed properly on the incoming requests, so each API server is correctly updated/synced with the used rate limits.
Can you please confirm this understanding?
Also, I don't think this is part of the Openstack trunk code, and if so, is there any reason why it's not part of Nova, as it was meant to be a replacement?
From: openstack-bounces+rohit.karajgi=vertex.co.in at lists.launchpad.net [mailto:openstack-bounces+rohit.karajgi=vertex.co.in at lists.launchpad.net] On Behalf Of Kevin L. Mitchell
Sent: Saturday, March 17, 2012 3:15 AM
To: openstack at lists.launchpad.net
Subject: [Openstack] Distributed rate-limiting
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 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.
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
Both packages should be fairly well documented (start with README.rst), and please feel free to log issues or make pull requests.
Kevin L. Mitchell <kevin.mitchell at rackspace.com>
Mailing list: https://launchpad.net/~openstack
Post to : openstack at lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help : https://help.launchpad.net/ListHelp
Disclaimer:This email and any attachments are sent in strictest confidence for the sole use of the addressee and may contain legally privileged, confidential, and proprietary data. If you are not the intended recipient, please advise the sender by replying promptly to this email and then delete and destroy this email and any attachments without any further use, copying or forwarding
More information about the Openstack