配置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步设置的用户名和密码
集群搭建
1.在2、3台节点上安装rabbitmq,单机安装 1-10步
注:第5步yum源可以用scp命令复制
#scp /etc/yum.repos.d/rabbitmq.repo root@mq02:/etc/yum.repos.d/
2.检查三台的集群状态
[root@mq bin]# service rabbitmq-server start
Redirecting to /bin/systemctl start rabbitmq-server.service
[root@mq bin]# rabbitmqctl cluster_status
Cluster status of node rabbit@mq ...
[{nodes,[{disc,[rabbit@mq]}]},
{running_nodes,[rabbit@mq]},
{cluster_name,<<"rabbit@mq">>},
{partitions,[]},
{alarms,[{rabbit@mq,[]}]}]
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 rabbit@mq01 #将mq02连接到mq01,成为一个集群
mq03:
#rabbitmqctl stop_app #停止rabbitmq
#rabbitmqctl join_cluster --ram rabbit@mq01 #将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,查看管理界面
切换节点类型
[root@mq02 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@mq02 …
[root@mq02 ~]# rabbitmqctl change_cluster_node_type ram #disc
Turning rabbit@mq02 into a ram node
[root@mq02 ~]# rabbitmqctl start_app
Starting node rabbit@mq02 …
completed with 3 plugins.
配置策略、队列
1.创建策略
Name:my_ha
Pattern:^a
Definition:ha-mode all
参数注释:
Name:策略名称
pattern:匹配的规则
Definition:使用ha-mode模式中的all,也就是同步所以匹配的队列。‘?’类型与帮助文档
Priority:优先级,默认为0,值越大优先级越大。
2.给admin账户授权
3.在任意一台节点上添加一个Queues队列,点击Queues按钮,输入name、Arguments的值,别的值按其默认就好
参数注解:
Name:队列的名称
Durability:队列是否持久化(Durable持久化)
Node:消息队列的节点
Auto delete:自动删除
Arguments:使用的策略类型
用户管理、角色管理
可以管理界面操作,或者命令操作
用户管理
查看用户列表
[root@localhost ~]# rabbitmqctl list_users
Listing users ...
guest [administrator]
添加用户
rabbitmqctl add_user 用户名 密码
[root@localhost ~]# rabbitmqctl add_user admin 123456
Adding user "admin" ...
删除用户
rabbitmqctl delete_user 用户名
[root@localhost ~]# rabbitmqctl delete_user admin
Deleting user "admin" ...
修改用户密码
rabbitmqctl change_password 用户名 新密码
[root@localhost ~]# 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 用户名
[root@localhost ~]# rabbitmqctl list_users
Listing users ...
admin [administrator]
guest [administrator]
设置用户角色
rabbitmqctl set_user_tags admin 角色名称(支持同时设置多个角色)
[root@localhost ~]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...