最近在研究RabbitMQ,本文简单记录了如何搭建与配置一个RabbitMQ服务器。
安装RabbitMQ
rabbitmq-server是可以在Ubuntu系统与Debian系统中使用的RabbitMQ服务器。在Ubuntu标准的repositories中,其实包含了rabbitmq-server,但是标准仓库中的版本往往非常的老旧,直接安装的话会得到的可能不是你想要的版本,所以想安装新版本,我们需要一些额外的工作。这里主要介绍了Ubuntu下通过apt-get的方法安装最新版本,如果想了解更多的安装方法,可以看这里
安装前提
由于RabbitMQ需要基于Erlang/OTP,所以在安装RabbitMQ之前需要先安装Erlang/OTP。同样的,在Ubuntu标准的repositories中,Erlang/OTP的版本很老,推荐不要直接安装在Ubuntu标准的repositories中Erlang/OTP,而是安装新版本。
安装Erlang
添加地址
首先执行下面两个命令,添加Erlang自己的仓库地址到你本地。
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
或者你可以手动添加仓库地址至本地。 添加下面代码至你本地/etc/apt/sources.list中,注意把下面的{distribution}(包括大括号)替换成你自己系统的distribution。
deb https://packages.erlang-solutions.com/ubuntu {distribution} contrib
如果不知道自己系统的distribution是什么,可以输入lsb_release -c查看,我自己的系统是Ubuntu16.04,对应的distribution是xenial,所以我添加进/etc/apt/sources.list的命令是
deb https://packages.erlang-solutions.com/ubuntu xenial contrib
下一步用下面的命令来添加Erlang公钥
wget https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc
sudo apt-key add erlang_solutions.asc
开始安装Erlang
用下面的命令刷新本地apt-get仓库的缓存,然后安装Erlang。
sudo apt-get update
sudo apt-get install erlang
至此,Erlang安装完毕,如果想了解更多Erlang/OTP的安装方法,可以看这里
安装rabbitmq-server
添加rabbitmq仓库地址
同样的下面的像上文所说的一样将下面的{distribution}(包括大括号)替换成你自己系统的distribution。
echo "deb https://dl.bintray.com/rabbitmq/debian {distribution} main" | sudo tee /etc/apt/sources.list.d/bintray.rabbitmq.list
添加rabbitmq仓库公钥
wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc | sudo apt-key add -
用下面的命令刷新本地apt-get仓库的缓存,然后安装rabbitmq-server。
sudo apt-get update
sudo apt-get install rabbitmq-server
至此rabbitmq-server安装完毕。
运行与配置RabbitMQ
运行RabbitMQ
在RabbitMQ安装包安装完后,服务器默认是会在后台通过一个没有特权的用户rabbitmq来运行的,想要手动启动或者停止重启服务器,只需要像系统中别的启动命令一样就可以了
service rabbitmq-server start
常用端口
以下是官网上常用端口的介绍:
4369: epmd, a peer discovery service used by RabbitMQ nodes and CLI tools
5672, 5671: used by AMQP 0-9-1 and 1.0 clients without and with TLS
25672: used for inter-node and CLI tools communication (Erlang distribution server port) and is allocated from a dynamic range (limited to a single port by default, computed as AMQP port + 20000). See networking guide for details.
35672-35682: used by CLI tools (Erlang distribution client ports) for communication with nodes and is allocated from a dynamic range (computed as Erlang dist port + 10000 through dist port + 10010). See networking guide for details.
15672: HTTP API clients and rabbitmqadmin (only if the management plugin is enabled)
61613, 61614: STOMP clients without and with TLS (only if the STOMP plugin is enabled)
1883, 8883: (MQTT clients without and with TLS, if the MQTT plugin is enabled
15674: STOMP-over-WebSockets clients (only if the Web STOMP plugin is enabled)
15675: MQTT-over-WebSockets clients (only if the Web MQTT plugin is enabled)
其中5672, 5671为消息队列常用的端口,15672为网页可视化管理所用的端口。
开启网页可视化管理
开启网页可视化管理很简单,首先需要开启RabbitMQ可视化管理插件,通过如下命令开启
“`
rabbitmq-plugins enable rabbitmq_management
““
然后访问http://server-name:15672/可以进入管理页面,默认账号密码都为guest,里面可以管理像创建用户,维护队列之类的功能,非常好用。 详细信息可以看https://www.rabbitmq.com/management.html