Test of IronMQ on Rackspace Cloud Sites
Ah, messaging. How fun is it? So fun! I went looking for a great messaging system to handle my small messaging needs (20-50k/day tops) and found RabbitMQ. It looks amazing! However, I’ve chosen to host on Rackspace Cloud Sites which means that I don’t have the ability to add RabbitMQ. What’s a dev to do?
Well, I could create my own cloud server just for RabbitMQ. Bleh. I don’t want to do that… it defeats the whole purpose of paying for my elastic cloud sites.
So, I did what every good dev does. I turned to Google. And Google sent me to Iron.IO which “provides hosted message queue, worker, scheduling, and cache services. No servers required.” Nice! I checked out their sell page, dev center, and pricing. There is a comparison chart and it looked like it would handle my needs at a price I could handle. (250,000 message requests per month free with each additional 10k requests costing a penny)
But would the MQ service work on Rackspace Cloud Sites? A simple test was in order.
I’m happy to report that it works! You can see an example at http://ironmq.zeetestsite.com
How I Tested
- Create an Iron.IO account
- Start a new Iron MQ project
- Start new VS2010 Empty MVC project
- Downloaded the Official IronMQ .NET Library from Github
- Opened that Official Library and built the project with the release settings
- Moved the Official Library dll to my project’s bin folder
- Added a reference to the Official Library dll
- Add deployable dependencies to my project (this is for Rackspace)
- Added config items for the IronMQ token, project id, and host in my web.config file. I left the host empty there and created an override in my web.release.config file with the actual string – “mq-rackspace-dfw.iron.io”
- Coded up a test controller and simple index page to click and view the results.
- Ran it locally and all worked!
- Created a new subdomain on and existing url I have at Rackspace Cloud Sites
- Deployed via ftp to Rackspace Cloud Sites
- Tested on Rackspace! It worked like a charm!
Source code is on github: https://github.com/monicabirdsong/test-ironmq-.net-mvc-rackspace
A Few Things to Note
- The sell page of the IronMQ had the only .NET examples. The page where you “get started” on your Iron.IO MQ project doesn’t have .NET. Hopefully they add that soon.
- They give you an iron.json file to download and use but I didn’t use it. It contains the token and project id. I just put them in my web.config files.
- They promise real-time queue sized but that’s not what I saw. During testing, none of my messages or my queue appeared on the Iron.IO activity interface. It took 2+ hours for them to appear.
- It looks like when you don’t specify a host, it uses AWS since several of my messages showed up under that host. Interesting as I don’t have an AWS account.
- Each get “reserves” the message for a configurable amount of time and the default is one minute. The documentation says that but I had to go specifically looking for it so I thought I’d make a note of it.
- There’s an unofficial library for the Iron.io API that I didn’t use but looks interesting.
Hope that helps you if you were wondering about IronMQ on Rackspace Cloud Sites! Now I’m off to code the actual stuff I want my messaging service to do! Comments are always welcome.