Apr 9th, 2010, 04:03 PM
Non-multicast, cloud session clustering with RabbitMQ
I updated my blog today with a fairly in-depth look at how I worked through the issues I was having making tcServer work in my federated, cloud environment. I probably went a little overboard on the details, as it's quite difficult to visualize some of these cloud-based systems, so I hope it's at least a meaningful contribution to the discussion of cloud architectures.
I built this to work with tcServer and my test box (running two instances of tcServer connected together via DNS round-robin load-balanced RabbitMQ servers (on VMware VMs) seems to function as expected. In other words, you can log in through an Apache server that is load-balancing back-end tcServers with ZERO sticky sessions and have it see you logged in on subsequent page requests. It moves your session from one server to the next, so there are no issues with stale session objects. I'm still working on the session replication for failover and what to do when a node goes down (right now, it blasts out all its sessions to whoever will replicate them and take them over). In essence, if you bring up new servers before turning off old ones, your user sessions should automagically migrate from one server to the next.
I think this has some great potential. I've posted the (Apache 2.0-licensed) source on GitHub:
The blog post describing my design is here:
Have a good weekend!