CentOS7安装RabbitMQ3.7.10

配置hosts
Rabbitmq.01:

#vim /etc/hostname

mq.01.localdomain

#vim /etc/hosts

192.168.56.111 mq01
192.168.56.112 mq02
192.168.56.113 mq03

Rabbitmq.02:

#vim /etc/hostname

mq02.localdomain

#vim /etc/hosts

192.168.56.111 mq01
192.168.56.112 mq02
192.168.56.113 mq03

Rabbitmq.03:

#vim /etc/hostname

mq03.localdomain

#vim /etc/hosts

192.168.56.111 mq01
192.168.56.112 mq02
192.168.56.113 mq03

单机安装
1.安装编译环境及epel源

#yum install -y wget gcc glibc-devel make ncurses-devel openssl-devel xmlto
#yum -y install epel-release

2.因为RabbitMQ的开发语言是erlang,所以需要安装依赖环境
参考链接:https://www.erlang-solutions.com/resources/download.html,页面底部安装步骤

3.进入soft目录,按步骤安装

#cd /soft
#wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
#rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
#yum -y install erlang

4.安装依赖软件

#yum -y install socat
#yum -y install logrotate

5.yum源安装rabbitmq

#vi /etc/yum.repos.d/rabbitmq.repo

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

注:如果系统不一样,请参考:http://www.rabbitmq.com/install-rpm.html#bintray

#yum -y install rabbitmq-server
#ls /usr/lib/rabbitmq/bin/  #查看rabbitmq执行命令是否安装成功
#rabbitmq-plugins list  #查看插件安装情况

6.设置开机启动、停止服务

#systemctl enable rabbitmq-server.service
#systemctl disable rabbitmq-server.service  #关闭开机启动

或执行:chkconfig rabbitmq-server on
7.启动服务,附其他服务命令

#service rabbitmq-server start
#service rabbitmq-server status
#service rabbitmq-server stop
#service rabbitmq-server restart

或者执行以下命令
systemctl restart rabbitmq-server
卸载
rpm -qa | grep rabbitmq-server
rpm -e rabbitmq-server-XXX.el7.noarch

8.添加用户

#rabbitmqctl add_user admin admin
#rabbitmqctl set_user_tags admin administrator

9.设置配置文件

#cp /usr/share/doc/rabbitmq-server-3.7.10/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

10.开启web界面管理工具,重启服务

#rabbitmq-plugins enable rabbitmq_management
#service rabbitmq-server restart

11.登录管理系统,打开:http://192.168.56.111:15672/,输入第9步设置的用户名和密码
CentOS7安装RabbitMQ3.7.10
CentOS7安装RabbitMQ3.7.10
集群搭建
1.在2、3台节点上安装rabbitmq,单机安装 1-10步
注:第5步yum源可以用scp命令复制

#scp /etc/yum.repos.d/rabbitmq.repo [email protected]:/etc/yum.repos.d/

2.检查三台的集群状态

[[email protected] bin]# service rabbitmq-server start
Redirecting to /bin/systemctl start rabbitmq-server.service
[[email protected] bin]# rabbitmqctl cluster_status
Cluster status of node [email protected] ...
[{nodes,[{disc,[[email protected]]}]},
 {running_nodes,[[email protected]]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{[email protected],[]}]}]

3.在三台服务器上构建Erlang的集群环境

#chown root:root /var/lib/rabbitmq/.erlang.cookie
#chmod 600 /var/lib/rabbitmq/.erlang.cookie
#cat /var/lib/rabbitmq/.erlang.cookie
PMGUYCXUPTZMWOHVFTZC
#vim /var/lib/rabbitmq/.erlang.cookie  #复制上面的码到2、3节点的.erlang.cookie
#chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

备注:
在Erlang的集群中,各节点是通过一个magic cookie来实现的,这个coolie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限。所以必须保证各节cookie保持一致,否则节点间就无法通信!
4.开启rabbitmq服务

#systemctl start rabbitmq-server.service

5.将mq02、mq03作为内存节点与mq.01磁盘节点连接起来
mq02:

#rabbitmqctl stop_app  #停止rabbitmq
#rabbitmqctl join_cluster --ram [email protected] #将mq02连接到mq01,成为一个集群

mq03:

#rabbitmqctl stop_app  #停止rabbitmq
#rabbitmqctl join_cluster --ram [email protected] #将mq02连接到mq01,成为一个集群

6.节点01添加用户

#rabbitmqctl add_user admin admin
#rabbitmqctl set_user_tags admin administrator

7.节点02、03设置配置文件,并且重启rabbitmq服务

#cp /usr/share/doc/rabbitmq-server-3.7.10/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
#systemctl restart rabbitmq-server.service
#service rabbitmq-server restart

8.登录admin,查看管理界面
CentOS7安装RabbitMQ3.7.10
切换节点类型
[[email protected] ~]# rabbitmqctl stop_app
Stopping rabbit application on node [email protected]
[[email protected] ~]# rabbitmqctl change_cluster_node_type ram #disc
Turning [email protected] into a ram node
[[email protected] ~]# rabbitmqctl start_app
Starting node [email protected]
completed with 3 plugins.
CentOS7安装RabbitMQ3.7.10
配置策略、队列
1.创建策略
CentOS7安装RabbitMQ3.7.10
Name:my_ha
Pattern:^a
Definition:ha-mode all
参数注释:
Name:策略名称
pattern:匹配的规则
Definition:使用ha-mode模式中的all,也就是同步所以匹配的队列。‘?’类型与帮助文档
Priority:优先级,默认为0,值越大优先级越大。
2.给admin账户授权
CentOS7安装RabbitMQ3.7.10
CentOS7安装RabbitMQ3.7.10
3.在任意一台节点上添加一个Queues队列,点击Queues按钮,输入name、Arguments的值,别的值按其默认就好
CentOS7安装RabbitMQ3.7.10
CentOS7安装RabbitMQ3.7.10
参数注解:
Name:队列的名称
Durability:队列是否持久化(Durable持久化)
Node:消息队列的节点
Auto delete:自动删除
Arguments:使用的策略类型
用户管理、角色管理
可以管理界面操作,或者命令操作
CentOS7安装RabbitMQ3.7.10
用户管理
查看用户列表

[[email protected] ~]# rabbitmqctl list_users
Listing users ...
guest   [administrator]

添加用户

  rabbitmqctl add_user 用户名 密码
[[email protected] ~]# rabbitmqctl add_user admin 123456
Adding user "admin" ...

删除用户

  rabbitmqctl delete_user 用户名
[[email protected] ~]# rabbitmqctl delete_user admin
Deleting user "admin" ...

修改用户密码

  rabbitmqctl change_password 用户名 新密码
[[email protected] ~]# rabbitmqctl change_password admin 666666
Changing password for user "admin" ...

角色管理
角色说明

none(普通用户)
没有控制台操作权限。

management(普通管理员)
可以查看当前用户的queues, exchanges和bindings。
可以查看和关闭当前用户的channels和connections。
可以查看当前用户的virtual hosts的统计信息。

policymaker(策略管理员)
具有management权限及查看、创建和删除当前用户的policies和parameters。

monitoring(监控管理员)
具有management权限
查看所有virtual hosts及全局的统计信息
查看所有用户的connections和channels
查看所有节点数据,如clustering和memory使用情况

administrator(超级管理员)
具有policymaker、monitoring权限
查看、创建、删除所有virtual hosts
查看、创建、删除所有users
查看、创建、删除所有permissions
可以关闭所有用户的connections

查看用户角色

  rabbitmqctl list_users 用户名
[[email protected] ~]# rabbitmqctl list_users
Listing users ...
admin   [administrator]
guest   [administrator]

设置用户角色

  rabbitmqctl set_user_tags admin 角色名称(支持同时设置多个角色)
[[email protected] ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...