This sounds great! May I just take this opportunity to thank you for your efforts on the uWSGI project, it has played a vital part in allowing us to achieve high performance results in our webapp infrastructure, and I am sure many other people would say the same!
On Wed, Feb 2, 2011 at 4:00 PM, Roberto De Ioris <[email protected]> wrote: > > The uWSGI fastrouter is a c based, async uwsgi router you can use as a > ultra-fast routing solutions for multiple uWSGI instances running on the > same hot on external servers. > > It is compiled in by default and (for now) can be configured only using > the uWSGI caching subsystem (every domain/hostname takes a cache entry). > > Lets start it with a cache of 100 items running on port 3031 and 3032 > (the first one is the port you will connect your webserver to, the second > is used by the instances to communicate their address) > > uwsgi --fastrouter :3031 --fastrouter-use-cache --cache 100 --socket :3032 > > (simple command line, you can obviously add the master and so on, but > start with it for tests) > > Now point your webserver to the address :3031 (as a normal uWSGI instance). > > From now on every request will search for hostname in the cache and will > forward request to the corresponding address. > > Now let's write a simple wsgi app > > import uwsgi > > # delete old value from remote cache > uwsgi.cache_del('example.com', '127.0.0.1:3032') > # add the new mapping to the fastrouter remote cache > uwsgi.cache_set('example.com', uwsgi.opt['socket'], 0, '127.0.0.1:3032') > > def application(env, start_response): > start_response('200 OK', [('Content-Type','text/html')]) > return "Hello World" > > > Run it as always > > uwsgi -s /tmp/mysock.sock --chmod=666 -w myapp > > On startup the app will write in the fastrouter cache its domain/address > > Some note: > > The last arg of the uwsgi.cache_* api functions is the optional remote > server from where to send/get data (if not specified the local cache, if > available, will be used) > > The uwsgi.opt['socket'] is a 0.9.7 extension of the api the contains all > the option you passed to the instance. In case of multiple sockets you can > get the first one as uwsgi.opt['socket'][0] and so on. > > Using UNIX socket will force the fastrouter to use fd passing, so i > suggest you to use them to get a huge boost. > > In the next 0.9.6 release (i will release it during the week end) i will > add support for fd passing, so users can start using the fastrouter with > stable instances. > > Now join the fastrouter with the emperor, and welcome fast/automated > deploys :) > > -- > Roberto De Ioris > http://unbit.it > _______________________________________________ > uWSGI mailing list > [email protected] > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi >
_______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
