I’ve had to get RabbitMQ up and running on Windows a couple of times the last few weeks and instead of fumbling my way through it again, I captured the steps for a walkthrough. Here’s the rundown for how to install and configure RabbitMQ on Windows.
NOTE: This is just to install a single RabbitMQ node with no clustering.
Install Erlang
The first thing to know is that RabbitMQ runs on top of the Erlang virtual runtime. Erlang is a functional programming language with an emphasis on concurrency and high-availability and is well suited for something such as high-volume queuing. You can download Erlang here.
Once Erlang is installed, verify that the ERLANG_HOME path has been added to your system environment variables. If it hasn’t, manually add it with its value being the full path to the Erlang directory:
Install RabbitMQ
With the Erlang runtime installed, download and install RabbitMQ. No tips or anything fancy here, just click through the installer. You should now see RabbitMQ listed and running as a service on your machine.
Open Ports
To ensure everything will work properly, you need to add some inbound rules to your Windows firewall.
The first one is for RabbitMQ, which uses 5672 as its main port and 15672 for its web admin:
Rule Type | Port |
Protocols and Ports | TCP |
Specified local ports | 5672, 15672 |
Action | Allow the connection |
Profile | Domain, Private, Public |
Name | RabbitMQ |
The next three are for Erlang:
Rule Type | Program |
Program path | %ProgramFiles%\erl7.2.1\bin\erl.exe |
Action | Allow the connection |
Profile | Domain, Private, Public |
Name | Erlang |
Rule Type | Program |
Program path | %ProgramFiles%\erl7.2.1\erts-7.2.1\bin\erl.exe |
Action | Allow the connection |
Profile | Domain, Private, Public |
Name | Erlang Run-Time System |
Rule Type | Program |
Program path | %ProgramFiles%\erl7.2.1\erts-7.2.1\bin\epmd.exe |
Action | Allow the connection |
Profile | Domain, Private, Public |
Name | Erlang Port Mapper Daemon |
Enable Management Plugin
RabbitMQ provides a handy web admin to manage its queues, but it’s turned off by default. RabbitMQ comes with a management plugin that you need to enable from the command line:
1. Open a command prompt as administrator.
2. Navigate to “C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.0\sbin” (or whichever your version is).
3. At the prompt, type the following:
rabbitmq-plugins enable rabbitmq_management
4. If you see a message saying “could not contact node” or “unable to connect to node”, you might need to set the HOMEDRIVE before running the previous command, which would also entail restarting the service, as such (more details in this Stack Overflow post):
SET HOMEDRIVE=C: rabbitmq-plugins enable rabbitmq_management rabbitmq-service stop rabbitmq-service install rabbitmq-service start
5. Now at the command prompt, type the following:
rabbitmqctl status
If you see output of configuration info then you’re good.
Login to Web Admin
You can view the RabbitMQ web admin by pointing your browser at http://localhost:15672/. To login, use guest for both the username and password and you should see something like this:
Add Admin User
The guest account is fine for logging into the RabbitMQ web admin on the local machine, but you might want to create a different admin account to login and use from applications that interact with the queue. Just do the following:
1. Go to the Admin tab.
2. Expand the Add a user section.
3. Enter a username and password, then click the Admin link below the Tags textbox. This will populate the Tags textbox with administrator. Click Add User.
4. You should see the new user in the list of users table with No access under Can access virtual hosts. Click the username of the new user.
5. Ensure / is selected in the Virtual Host dropdown list then click Set Permission.
6. Now click the Admin tab and you should see the new user with / as the value under Can access virtual hosts.
And that does it for this little walkthrough, enjoy!
Featured Image: Some rights reserved by adewale_oshineye
Great summary of getting things going on Windows! It looks like currently you don’t even need an admin prompt – you can use “RabbitMQ Command Prompt” and still get the web admin installed.
Thanks a lot, I had issue to install the rabbitMQ in my windows PC. after following your blog, it is all good.
Great little article, all the other places I searched did not include detailed steps for opening the ports!
Much appreciated
Thank you very much for the explanation on the Erlang properties. My cluster kept removing one of the nodes in my three node cluster. After setting the inbound rules in the firewall for Erlang, it worked perfectly. All other sources did not mention this. Thanks!
saved the day.
many Thanks!
-faizan
Thanks a lot,
Very helpful!
Great solution! Can anyone let me tutorial about communication between micro services
Thanks for the article Dave. I know I’m four years late to the party, but I’m having some problems, as noted here: https://stackoverflow.com/q/56601031/751484
Any assistance would be greatly appreciated.