RabbitMQ是用Erlang语言编写的、实现了高级高级消息队列协议(AMQP)的开源消息代理软件(即消息中间件),支持主流的操作系统(Linux、windows、MacOS),同时支持多种开发语言,如C/C++、Java、Python、PHP、.Net、Node.js等。本章节先介绍如何安装和运行RabbitMQ。
一、在Linux中安装RabbitMQ
对于Linux系统,无论是Centos还是Ubuntu系列的系统,RabbitMQ官方都极力推荐搭建使用可执行脚本进行快速的安装,官方地址如下:https://packagecloud.io/rabbitmq/rabbitmq-server/install
在该网站中提供了node、rpm、python等语言编写的脚本,只需执行诸如以下脚本即可实现快速安装,而不用手动去安装RabbitMQ的运行环境erlang:
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
二、通过docker的方式安装RabbitMQ
通过docker安装的方式很简单,在docker运行环境下,执行如下命令:
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
执行该命令后,docker会自动拉取RabbitMQ镜像,并运行该镜像,成功后尾行打印信息如下:
2020-05-15 02:56:56.245 [info] <0.619.0> started TCP listener on [::]:5672 2020-05-15 02:56:56.246 [info] <0.278.0> Running boot step cluster_name defined by app rabbit 2020-05-15 02:56:56.246 [info] <0.278.0> Initialising internal cluster ID to 'rabbitmq-cluster-id-AN8g_0ek5g0rPR_NJs0crQ' 2020-05-15 02:56:56.250 [info] <0.278.0> Running boot step direct_client defined by app rabbit 2020-05-15 02:56:56.251 [info] <0.278.0> Running boot step os_signal_handler defined by app rabbit 2020-05-15 02:56:56.251 [info] <0.622.0> Swapping OS signal event handler (erl_signal_server) for our own 2020-05-15 02:56:56.307 [info] <0.672.0> Management plugin: HTTP (non-TLS) listener started on port 15672 2020-05-15 02:56:56.307 [info] <0.778.0> Statistics database started. 2020-05-15 02:56:56.307 [info] <0.777.0> Starting worker pool 'management_worker_pool' with 3 processes in it 2020-05-15 02:56:56.515 [info] <0.9.0> Server startup complete; 3 plugins started. * rabbitmq_management * rabbitmq_web_dispatch * rabbitmq_management_agent completed with 3 plugins.
然后,我们可以通过查询docker的运行状态查询RabbitMQ的运行情况:docker ps
可以发现该镜像默认使用了4369、5671、5672、15671和25672四个端口,其中5671是使用了SSL后监听的端口,5672是未使用SSL默认监听端口,15672是RabbitMQ服务提供的web服务端口,该web服务默认的账户guest/ guest,在该web服务中可以查看到队列列表及队列中的未发送给consumer 的消息等内容。