RabbitMQ的安装详解

Catalogue
  1. 1. RabbitMQ简介
  2. 2. RabbitMQ的安装
    1. 2.1. Centos 7下安装RabbitMQ
      1. 2.1.1. 安装Erlang
      2. 2.1.2. 安装RabbitMQ
      3. 2.1.3. 运行RabbitMQ
      4. 2.1.4. 开启WEB后台管理界面
      5. 2.1.5. 创建远程登录账号密码
    2. 2.2. Docker中安装RabbitMQ
  3. 3. 小结
  4. 4. 参考资料

RabbitMQ简介

RabbitMQ是采用Erlang语言实现AMQP(高级消息队列协议)的消息中间件。

RabbitMQ的安装

这里所有的安装操作都是在Centos 7系统下进行的,RabbitMQ的安装方式其实有两种,一种是直接在Linux系统中安装,一种是在容器中安装,这里指Docker容器。对于一些简单的测试环境或者小型项目,我更愿意在Docker中安装使用,因为在Docker中安装更方便,容器帮我们做了很多工作。

Centos 7下安装RabbitMQ

以下的安装方式都是通过源码包的形式安装,当然也可以通过centos的yum源进行安装。

安装Erlang

从Erlang官网下载安装包: http://www.erlang.org/downloads

1
2
3
4
5
6
[root@iz2zeaf3cg1099kiidi06mz ~]# tar xvf otp_src_21.0.tar.gz
[root@iz2zeaf3cg1099kiidi06mz ~]# cd otp_src_21.0
[root@iz2zeaf3cg1099kiidi06mz otp_src_21.0]# ./configure --prefix=/opt/erlang

[root@iz2zeaf3cg1099kiidi06mz otp_src_21.0]# make
[root@iz2zeaf3cg1099kiidi06mz otp_src_21.0]# make install

修改/etc/profile,添加环境变量:

1
2
3
ERLANG_HOME=/opt/erlang
export PATH=$PATH:$ERLANG_HOME/bin
export ERLANG_HOME

然后source /etc/profile使其生效

安装RabbitMQ

从RabbitMQ官网下载源码包: https://www.rabbitmq.com/download.html

官网也提供RPM(Linux下的软件包管理器)安装形式,详情参阅官网

1
2
3
4
5
[root@iz2zeaf3cg1099kiidi06mz ~]# tar xvf rabbitmq-server-generic-unix-3.6.15.tar.xz -C /opt
[root@iz2zeaf3cg1099kiidi06mz ~]# cd /opt
[root@iz2zeaf3cg1099kiidi06mz opt]# ls
erlang rabbitmq_server-3.6.15
[root@iz2zeaf3cg1099kiidi06mz opt]# mv rabbitmq_server-3.6.15 rabbitmq

修改/etc/profile,添加环境变量:

1
2
export PATH=$PATH:/opt/rabbitmq/sbin
export RABBITMQ_HOME=/opt/rabbitmq

1
2
[root@iz2zeaf3cg1099kiidi06mz opt]# vi /etc/profile
[root@iz2zeaf3cg1099kiidi06mz opt]# source /etc/profile

运行RabbitMQ

rabbitmq-server -detached 以守护进程的方式运行rabbitmq

1
2
[root@iz2zeaf3cg1099kiidi06mz opt]# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

rabbitmq status查看RabbiMQ是否运行成功

1
2
3
4
[root@iz2zeaf3cg1099kiidi06mz opt]# rabbitmqctl status
Status of node rabbit@iz2zeaf3cg1099kiidi06mz
[{pid,30300},
{running_applications,

开启WEB后台管理界面

1
[root@iz2zeaf3cg1099kiidi06mz ~]# rabbitmq-plugins enable rabbitmq_management

创建远程登录账号密码

由于rabbitmq的默认账号(账号guest,密码guest)具有全部权限,guest账号只允许在Localhost登录WEB界面,远程登录会失败,所以我们需要新建账号并设置相应权限

1. 查看当前用户列表

1
2
3
[root@iz2zeaf3cg1099kiidi06mz ~]# rabbitmqctl list_users;
Listing users
guest [administrator]

2. 新增一个用户

命令rabbitmqctl add_user {username} {password}

1
2
[root@iz2zeaf3cg1099kiidi06mz ~]# rabbitmqctl add_user root root
Creating user "root"

3. 设置用户角色

命令rabbitmqctl set_user_tags {username} {tag...}

1
2
3
[root@iz2zeaf3cg1099kiidi06mz ~]# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [administrator]
//administrator代表最高权限

4. 设置用户权限

命令是rabbitmqctl set_permissions [-p vhost] {user}{conf}{write}{read}
而rabbitmq默认的虚拟主机host为”/“。当然也可以新建一个虚拟主机,命令为rabbitmqctl add_vhosts 虚拟主机名称

这里授予root用户访问虚拟主机 /,并在所有资源上都具备可配置,可写以及可读的权限

1
2
[root@iz2zeaf3cg1099kiidi06mz ~]# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
Setting permissions for user "root" in vhost "/"

通过以上步骤之后,就可以通过自己设定的账号远程访问web管理界面了。

Docker中安装RabbitMQ

在Docker中安装RabbiMQ是很方便的,当前前提你得有Docker环境,至于Docker的安装这里就不介绍了,详情请参阅CentOS 安装 Docker

1. 拉取镜像

从官方下载镜像到本地,这里是带有web管理插件的镜像

1
2
[root@iz2zeaf3cg1099kiidi06mz ~]# docker pull rabbitmq:management
management: Pulling from library/rabbitmq

2. 运行镜像,创建rabbitmq容器

1
2
[root@iz2zeaf3cg1099kiidi06mz ~]# docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
a190a7d8245d09eae9cdf8322ba7def2397b4dad12bdcf6200143ea3a3519920

参数说明:

  • -d 表示后台进程运行
  • –name: 指定容器名称
  • -p: 映射主机端口到内部容器开发的网络端口

更多关于docker的参数说明,请参阅Docker — 从入门到实践

3. 访问web管理界面
rabbitmq

但是这里发现一个问题,通过docker安装的rabbitmq并运行,可以直接使用默认账号远程访问。具体原因没查明白,猜测可能是容器的端口映射到主机的端口上,外网默认账号访问时让运行在容器中的rabbitmq以为是本地访问

实际上,在Docker中安装运行rabbitmq是非常快捷方便的,这有利于我们进行项目开发需要。

小结

以前也装过rabbitmq,实际项目也用过。当时没有去做笔记,写博客的习惯,以至于学过就像「白学」一样。现在从头开始,仔细去研究Rabbitmq。总结的过程就是成长的过程。

参考资料

Bagikan Komentar