集群-消息队列-RabbitMQ-Centos7

RabbitMQ部署文档

消息队列,先写入再调用,与tomcat关联

1. 单点

单点部署RabbitMQ直接运行脚本。

ftp://172.16.0.99:/scripts/RabbitMQ-3.6.11-centos7.sh

访问:本机IP:15672
用户名:admin
密码:1qazxsw2

===============================================

2. 集群

172.16.0.51 RabbitMQ1
172.16.0.52 RabbitMQ2
172.16.0.53 RabbitMQ3

2.1 先部署RabbitMQ1

    ftp://172.16.0.99:/scripts/RabbitMQ-3.6.11-centos7.sh

[root@RabbitMQ1 ~]# tail -3 /etc/hosts
192.168.1.51	RabbitMQ1.up.com	RabbitMQ1
192.168.1.52	RabbitMQ2.up.com	RabbitMQ2
192.168.1.53	RabbitMQ3.up.com	RabbitMQ3

使用RabbitMQ1克隆RabbitMQ2,RabbitMQ3。

检查.erlang.cookie文件:

[root@RabbitMQ1 ~]# cd /var/lib/rabbitmq/
[root@RabbitMQ1 rabbitmq]# cat .erlang.cookie
CLJYRPKIXSWCDKDODKPL

[root@RabbitMQ1 /var/lib/rabbitmq]# ll .erlang.cookie 
-r-------- 1 rabbitmq rabbitmq 20 Jul 30 00:00 .erlang.cookie

[root@RabbitMQ2 ~]# cd /var/lib/rabbitmq/
[root@RabbitMQ2 rabbitmq]# cat .erlang.cookie
CLJYRPKIXSWCDKDODKPL

[root@RabbitMQ2 /var/lib/rabbitmq]# ll .erlang.cookie 
-r-------- 1 rabbitmq rabbitmq 20 Jul 30 00:00 .erlang.cookie

[root@RabbitMQ3 ~]# cd /var/lib/rabbitmq/
[root@RabbitMQ3 rabbitmq]# cat .erlang.cookie
CLJYRPKIXSWCDKDODKPL

[root@RabbitMQ3 /var/lib/rabbitmq]# ll .erlang.cookie 
-r-------- 1 rabbitmq rabbitmq 20 Jul 30 00:00 .erlang.cookie

2.2 使用detached参数,在后台启动Rabbit Node

要先停止现有的Rabbitmq-server,再重新在后台运行。
[root@RabbitMQ1 ~]# rabbitmqctl stop
Stopping and halting node rabbit@RabbitMQ1
[root@RabbitMQ2 ~]# rabbitmqctl stop
Stopping and halting node rabbit@RabbitMQ2
[root@RabbitMQ3 ~]# rabbitmqctl stop
Stopping and halting node rabbit@RabbitMQ3

[root@RabbitMQ1 ~]# rabbitmq-server -detached
[root@RabbitMQ2 ~]# rabbitmq-server -detached
[root@RabbitMQ3 ~]# rabbitmq-server -detached
Warning: PID file not written; -detached was passed.

[root@RabbitMQ1 ~]# netstat -antp | grep 5672
[root@RabbitMQ2 ~]# netstat -antp | grep 5672
[root@RabbitMQ3 ~]# netstat -antp | grep 5672
tcp	0      0 0.0.0.0:15672	0.0.0.0:*	LISTEN	5173/beam.smp       
tcp	0      0 0.0.0.0:25672	0.0.0.0:*	LISTEN	5173/beam.smp       
tcp6	0      0 :::5672	:::*	LISTEN	5173/beam.smp 

[root@RabbitMQ1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@RabbitMQ1
[{nodes,[{disc,[rabbit@RabbitMQ1]}]},
 {running_nodes,[rabbit@RabbitMQ1]},
 {cluster_name,<<"rabbit@RabbitMQ1">>},
 {partitions,[]},
 {alarms,[{rabbit@RabbitMQ1,[]}]}]

[root@RabbitMQ2 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@RabbitMQ2
[{nodes,[{disc,[rabbit@RabbitMQ2]}]},
 {running_nodes,[rabbit@RabbitMQ2]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{rabbit@RabbitMQ2,[]}]}]

[root@RabbitMQ3 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@RabbitMQ3
[{nodes,[{disc,[rabbit@RabbitMQ3]}]},
 {running_nodes,[rabbit@RabbitMQ3]},
 {cluster_name,<<"[email protected]">>},
 {partitions,[]},
 {alarms,[{rabbit@RabbitMQ3,[]}]}]

2.3 将RabbitMQ1、RabbitMQ2、RabbitMQ3组成集群

(1)RabbitMQ2

[root@RabbitMQ2 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@RabbitMQ2

[root@RabbitMQ2 ~]# rabbitmqctl join_cluster rabbit@RabbitMQ1
Clustering node rabbit@RabbitMQ2 with rabbit@RabbitMQ1

[root@RabbitMQ2 ~]# rabbitmqctl start_app
Starting node rabbit@RabbitMQ2

(2)RabbitMQ3

[root@RabbitMQ3 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@RabbitMQ3

[root@RabbitMQ3 ~]# rabbitmqctl join_cluster rabbit@RabbitMQ1
Clustering node rabbit@RabbitMQ3 with rabbit@RabbitMQ1

[root@RabbitMQ3 ~]# rabbitmqctl start_app
Starting node rabbit@RabbitMQ3

查看集群的状态:

[root@RabbitMQ1 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@RabbitMQ1
[{nodes,[{disc,[rabbit@RabbitMQ1,rabbit@RabbitMQ2,rabbit@RabbitMQ3]}]},
 {running_nodes,[rabbit@RabbitMQ3,rabbit@RabbitMQ2,rabbit@RabbitMQ1]},
 {cluster_name,<<"rabbit@RabbitMQ1">>},
 {partitions,[]},
 {alarms,[{rabbit@RabbitMQ3,[]},{rabbit@RabbitMQ2,[]},{rabbit@RabbitMQ1,[]}]}]

[root@RabbitMQ2 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@RabbitMQ2
[{nodes,[{disc,[rabbit@RabbitMQ1,rabbit@RabbitMQ2,rabbit@RabbitMQ3]}]},
 {running_nodes,[rabbit@RabbitMQ3,rabbit@RabbitMQ1,rabbit@RabbitMQ2]},
 {cluster_name,<<"rabbit@RabbitMQ1">>},
 {partitions,[]},
 {alarms,[{rabbit@RabbitMQ3,[]},{rabbit@RabbitMQ1,[]},{rabbit@RabbitMQ2,[]}]}]

[root@RabbitMQ3 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@RabbitMQ3
[{nodes,[{disc,[rabbit@RabbitMQ1,rabbit@RabbitMQ2,rabbit@RabbitMQ3]}]},
 {running_nodes,[rabbit@RabbitMQ1,rabbit@RabbitMQ2,rabbit@RabbitMQ3]},
 {cluster_name,<<"rabbit@RabbitMQ1">>},
 {partitions,[]},
 {alarms,[{rabbit@RabbitMQ1,[]},{rabbit@RabbitMQ2,[]},{rabbit@RabbitMQ3,[]}]}]

浏览器访问:

http://172.16.0.51:15672/#/
http://172.16.0.52:15672/#/
http://172.16.0.53:15672/#/
在【Nodes】栏可以看到3个节点。

RabbitMQ1 说明书

1. 用户管理

用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。

(1)新增一个用户

# rabbitmqctl  add_user  Username  Password

(2)删除一个用户

# rabbitmqctl  delete_user  Username

(3)修改用户的密码

# rabbitmqctl  change_password  Username  Newpassword

(4)查看当前用户列表

# rabbitmqctl  list_users

2. 用户角色

按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

(1)超级管理员(administrator)
可登录管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2)监控者(monitoring)
可登录管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3)策略制定者(policymaker)
可登录管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
(4)普通管理者(management)
仅可登录管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5)其他
无法登录管理控制台,通常就是普通的生产者和消费者。

3. 用户权限

用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。

例如:将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。

(1)设置用户权限

# rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP

设置用户角色,$user用户名  $permissions用户角色
# rabbitmqctl set_user_tags $user $permissions

(2)查看(指定hostpath)所有用户的权限信息

# rabbitmqctl  list_permissions  [-p  VHostPath]

(3)查看指定用户的权限信息

# rabbitmqctl  list_user_permissions  User

(4)清除用户的权限信息

# rabbitmqctl  clear_permissions  [-p VHostPath]  User
发布了57 篇原创文章 · 获赞 3 · 访问量 988

猜你喜欢

转载自blog.csdn.net/weixin_42502744/article/details/103783821