消息队列--rabbitmq

RabbitMQ如果是单点那么直接安装就可以用了。

下载RabbitMQ、erlang、socat的包:

先安装erlang ,再安装socat包,最后安装RabbitMQ

rpm -ivh erlang-18.3-1.el6.x86_64.rpm
rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm 

启动RabbitMQ

systemctl start rabbitmq-server
systemctl enable rabbitmq-server
rabbitmq-plugins enable rabbitmq_management
最后这个是rabbitmq的管理工具

创建用户,从3.3版本后就不能用guest远程登录了,所以要重新创建用户登录。设置管理权限。

rabbitmqctl add_user USERNAME   PASSWD
rabbitmqctl set_user_tags USERNAME administrator

然后访问地址http://IP:15672 输入用户名和密码。就能看到管理页面 了。

集群环境:
也是先配置单点,然后直接克隆。

1、写hosts文件。

[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

2、检查.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

这些都是一样的。

使用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,<<"rabbit@RabbitMQ2.up.com">>},
 {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,<<"rabbit@RabbitMQ3.up.com">>},
 {partitions,[]},
 {alarms,[{rabbit@RabbitMQ3,[]}]}]

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://rabbit1IP:15672/#/
http://rabbit2IP:15672/#/
http://rabbit3IP:15672/#/

如果出现登陆失败,那么就 重新添加用户并设置为管理员权限。

rabbitmqctl add_user USERNAME   PASSWD
rabbitmqctl set_user_tags USERNAME administrator

用户的管理:

用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
【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)操作。

【1】设置用户权限

# rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP

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

# rabbitmqctl  list_permissions  [-p  VHostPath]

【3】查看指定用户的权限信息

# rabbitmqctl  list_user_permissions  User

【4】清除用户的权限信息

# rabbitmqctl  clear_permissions  [-p VHostPath]  User
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值