[rabbitmq-discuss] Caching proxy for cloud HA

Jon Brisbin jon.brisbin at npcinternational.com
Tue May 11 20:10:23 BST 2010

I'm banging around an idea for an HA load-balancer because, frankly, Apache sucks at being a dynamic, cloud-friendly Proxy for application servers. I can't find anything else that will work for me, so I'm yet again going to try and write the basics of what I need myself. I'm going to run Apache servers on non-standard ports for the PHP apps we have, and proxy those just like I will my application servers. I'm thinking I can also proxy my RabbitMQ servers for HA as well.

My proxies would be immediately responsive to changes in my cloud services, so servers will drop off and join the cloud at unknown intervals. I'm thinking I could have my RMQ clients connect to the HA proxy, which load-balances requests to the configured back-end servers. I could easily introduce caching here because the proxy is transparent. The client has no idea it's not actually talking to the real RMQ server. I could duplicate data coming in to multiple back-end servers or I could do round-robin or somesuch. 

I'm wondering what happens to a client's subscriptions if a back-end RMQ server goes down? If I'm replicating the incoming bytes to more than one server at a time, then I'd get some failover, right? Could my proxy tell what the client is asking to do and route the data differently depending on whether the requests were subscriptions or declares (versus publishes, etc...). The proxy could de-dup using a simple one-way "valve" (like a countdown latch in Java).

Jon Brisbin
Portal Webmaster
NPC International, Inc.

More information about the rabbitmq-discuss mailing list