[rabbitmq-discuss] RabbitMQ-based vcloud session clustering
jon.brisbin at npcinternational.com
Mon Apr 5 22:53:29 BST 2010
Not sure there's anyone besides me on both these lists, but I'm x-posting just to save time.
I'm currently working on setting up a RabbitMQ-based session cluster using my own session manager and store. I had to write my own because I couldn't find anything out there that uses JMS or RabbitMQ to do session clustering (which actually surprised me a little) that had the virtual cloud awareness I need. Everything I've read about Tomcat clustering uses the Apache Tribes replication, which doesn't work for me under even moderate load testing (maybe I'm just not doing right...I don't know) or the centralized JDBCStore, which introduces a single point of failure.
The basic idea here is to use RabbitMQ as the session clustering back-end and have a user's session available to any server currently subscribed to the clustering queue with no sticky sessions at all. This (cross your fingers) gives me a very, very scalable clustering architecture (my RabbitMQ servers are load-balanced and clustered using VMware vms so I can add capacity at will) that doesn't suffer from the single point of failure of a JDBCStore or the multicast limitations of Apache Tribes. Sessions are also shared across points of responsibility, too, as a single session object can be passed around from code running inside a webapp to code in a command-line client. I wanted my session handling to be a first-class virtual cloud citizen, rather than feel like I'm shoe-horning existing code into what I want to do.
I'm almost finished with the heavy lifting. I should have a functioning drop-in manager and store this week, which I'll put on my github account. What I'd like to know is if there's any interest in the community for something like this? If there's no interest, I won't bother writing documentation and what-not.
Does this sound like it would interest any other Tomcat/RabbitMQ users?
NPC International, Inc.
More information about the rabbitmq-discuss