什么是RabbitMQ
RabbitMQ是用Erlang语言开发的一个实现了AMQP协议的消息队列服务器。
相比其他同类型的消息队列,最大的特点在保证可观的单机吞吐量的同时,延时方面非常出色。
为什么要选择RabbitMQ?
- 除了Qpid,RabbitMQ是唯一一个实现了AMQP标准的消息服务器;
- 可靠性,RabbitMQ的持久化支持,保证了消息的稳定性;
- 高并发,RabbitMQ使用了Erlang开发语言,Erlang是为电话交换机开发的语言,天生自带高并发光环,和高可用特性;
- 集群部署简单,正是因为Erlang使得RabbitMQ集群部署变得超级简单;
- 社区活跃度高,根据网上资料来看,RabbitMQ也是首选;
安装
centos7
基础依赖安装:
如果你的操作系统是Linux的最小安装包,那么应该有很多基础的依赖包没有安装,在安装RabbitMQ之前,需要安装好这些基础依赖包,可以运行如下命令:
$ sudo yum install openssql openssl-devel make gcc gcc-c++ kernel-devel
安装Socat:
RabbitMQ依赖于Socat,因此在安装RabbitMQ前要安装Socat,如下:
$ sudo yum install -y socat
安装Erlang:
因为RabbitMQ是用Erlang语言开发,所以在安装RabbitMQ前,要先安装Erlang运行环境,我们使用Erlang语言的rpm
安装包。
# 下载
$ wget https://github.com/rabbitmq/erlang-rpm/releases/download/v22.3/erlang-22.3-1.el7.x86_64.rpm
# 安装
$ rpm -ivh erlang-22.3-1.el7.x86_64.rpm
安装RabbitMQ:
上面所说的依赖安装完成后,最后我们可以运行下面的命令安装RabbitMQ:
# 下载
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.3/rabbitmq-server-3.8.3-1.el7.noarch.rpm
# 安装
$ rpm -ivh rabbitmq-server-3.8.3-1.el7.noarch.rpm
启动与关闭:
安装完成之后,可以使用rabbitmq-server命令启动服务器,如下:
# 直接启动
$ sudo rabbitmq-server
# -detached为可选参数,表示后台开启
$ sudo rabbitmq-server -detached
启动成功,输出如下:
如果要关闭,则可以使用下面的命令:
#关闭RabbitMQ服务:
$ sudo rabbitmqctl stop
插件管理:
上面我们使用rabbitmq-server启动服务器,也可以使用rabbitmqctl命令管理服务器,包括创建交换机、队列、用户管理等操作,除了命令管理工具,RabbitMQ还提供了Web管理工具,而Web管理工具作为RabbitMQ的插件,如果要开启,可以使用下面的命令 :
rabbitmq-plugins是RabbitMQ管理插件的命令。
$ sudo rabbitmq-plugins enable rabbitmq_management
启动插件后,我们再启动服务器,最后一行显示运行了3个插件,如下:
重新启动服务器后,可以打开浏览器访问RabbitMQ的Web管理界面,Web管理程序的端口号是15672,在浏览器中输入http://localhost:15672,即可以访问。
docker
# 拉取镜像包
docker pull rabbitmq:3.8.3-management
# 启动镜像
`docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq3.8.3-management