三、RabbitMQ安装


1、安装RabbitMQ

1.1 安装前的准备

一般来说安装 RabbitMQ 之前要安装 Erlang ,可以去Erlang官网下载。接着去RabbitMQ官网下载安装包,之后解压缩即可。

Erlang官方下载地址:https://www.erlang.org/downloads

RabbitMQ官方下载地址:https://www.rabbitmq.com/download.html

1.2 安装Erlang

1)将Erlang源代码包otp_src_19.3.tar.gz上传到Linux的/home目录下

2)解压erlang 源码包

tar -zxvf otp_src_19.3.tar.gz

3)手动创建erlang 的安装目录

mkdir /usr/local/erlang

4)进入erlang的解压目录

cd otp_src_19.3

5)配置erlang的安装信息

./configure --prefix=/usr/local/erlang --without-javac

6)编译并安装

make && make install

7)配置环境变量

vim /etc/profile

8)将这些配置填写到profile文件的最后

ERL_HOME=/usr/local/erlang

PATH=$ERL_HOME/bin:$PATH

export ERL_HOME PATH

9)启动环境变量配置文件

source /etc/profile

1.3 安装RabbitMQ

1)将RabbitMQ安装包rabbitmq-server-3.7.2-1.el7.noarch.rpm上传到/home目录

2)安装RabbitMQ

rpm -ivh --nodeps rabbitmq-server-3.7.2-1.el7.noarch.rpm

2、RabbitMQ常用命令

2.1 启动和关闭

1)启动RabbitMQ

rabbitmq-server start &

注意:这里可能会出现错误,错误原因是/var/lib/rabbitmq/.erlang.cookie文件权限不够。

解决方案对这个文件授权

chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

chmod 400 /var/lib/rabbitmq/.erlang.cookie

2)停止服务

rabbitmqctl stop

2.2 插件管理

1)添加插件

rabbitmq-plugins enable {插件名}

2)删除插件

rabbitmq-plugins disable {插件名}

注意:RabbitMQ启动以后可以使用浏览器进入管控台但是默认情况RabbitMQ不允许直接使用浏览器浏览器进行访问因此必须添加插件

rabbitmq-plugins enable rabbitmq_management

3)使用浏览器访问管控台http://RabbitMQ服务器IP:15672

http://192.168.71.128:15672

2.3 用户管理

RabbitMQ安装成功后使用默认用户名guest登录

账号:guest

密码:guest

注意:这里guest只允许本机登录访问需要创建用户并授权远程访问命令如下

1)添加用户:rabbitmqctl add_user {username} {password}

rabbitmqctl add_user root root

2)删除用户:rabbitmqctl delete_user {username}

3)修改密码:rabbitmqctl change_password {username} {newpassword}

rabbitmqctl change_password root 123456

4)设置用户角色:rabbitmqctl set_user_tags {username} {tag}

rabbitmqctl set_user_tags root administrator

tag参数表示用户角色取值为:management ,monitoring ,policymaker  administrator

各角色详解:

management

用户可以通过AMQP做的任何事外加:

列出自己可以通过AMQP登入的virtual hosts

查看自己的virtual hosts中的queues, exchanges 和 bindings

查看和关闭自己的channels 和 connections

查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。

policymaker

management可以做的任何事外加:

查看、创建和删除自己的virtual hosts所属的policies和parameters

monitoring

management可以做的任何事外加:

列出所有virtual hosts,包括他们不能登录的virtual hosts

查看其他用户的connections和channels

查看节点级别的数据如clustering和memory使用情况

查看真正的关于所有virtual hosts的全局的统计信息

administrator

policymaker和monitoring可以做的任何事外加:

创建和删除virtual hosts

查看、创建和删除users

查看创建和删除permissions

关闭其他用户的connections

2.4 权限管理

1)授权命令:rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}

-p vhostpath :用于指定一个资源的命名空间,例如 –p / 表示根路径命名空间

user:用于指定要为哪个用户授权填写用户名

conf:一个正则表达式match哪些配置资源能够被该用户配置。

     write:一个正则表达式match哪些配置资源能够被该用户读。
     read:一个正则表达式match哪些配置资源能够被该用户访问。
例如:
rabbitmqctl set_permissions -p / root '.*' '.*' '.*'
用于设置root用户拥有对所有资源的 读写配置权限
2)查看用户权限 rabbitmqctl list_permissions [vhostpath]
例如
查看根径经下的所有用户权限
rabbitmqctl list_permissions
查看指定命名空间下的所有用户权限
rabbitmqctl list_permissions /abc

3)查看指定用户下的权限rabbitmqctl list_user_permissions {username}
例如
查看root用户下的权限
rabbitmqctl list_user_permissions root

4)清除用户权限rabbitmqctl clear_permissions {username}
例如:
清除root用户的权限
rabbitmqctl clear_permissions root

2.5 vhost管理
vhost是RabbitMQ中的一个命名空间,可以限制消息的存放位置利用这个命名空间可以进行权限的控制有点类似Windows中的文件夹一样,在不同的文件夹中存放不同的文件。
1、添加vhost: rabbitmqctl add vhost {name}
例如
rabbitmqctl add vhost bjpowernode
2、删除vhost:rabbitmqctl delete vhost {name}
例如
rabbitmqctl delete vhost bjpowernode

MQ