Coming up in our next nginx for Windows release, but available now for everyone;
(EBLB) Elastic Backend Load Balancer, and (IWCP) Inter Worker Communication Protocol
[Lua required, for Windows don't try it until our next release]
EBLB allows you to manage and scale your upstreams including their IP:port addresses!
EBLB only works for one worker (the one receiving the EBLB request) in order to use EBLB with all workers you need IWCP.
If you only run with one worker you don't need IWCP.
If you want to participate in testing you can find the source, GUI, commandline examples and a working test nginx conf file, here: http://nginx-win.ecsds.eu/devtest/EBLB_upstream_dev3.zip
See also https://groups.google.com/forum/#!topic/openresty-en/wt_9m7GvROg
IWCP has been designed as a generic solution to allow workers to talk to each other and send over messages and/or commands. IWCP uses shared memory and is blazing fast even under high load.
(a shared pool of 1mb allows 10.000 messages to be processed in +-40 seconds with 8 workers)
Possible other usages for IWCP are:
- moving long running requests to workers only doing this type of processing
- swapping/scaling servers between overloaded upstreams in real-time
- dynamically change the runtime environment of all or only some workers
- if the shared memory pool is elsewhere you could talk to other nginx instances and their workers
... needless to say it's potential is huge.
Obviously IWCP is in its infant state and could do with more development; comments, use cases and new code are welcome.
Source and other files will appear on github in due time (they are already there in fork merge requests).
Enjoy!
---
nginx for Windows http://nginx-win.ecsds.eu/