学习rabbitmq,原理之后第一个要掌握的就是rabbitmqctl这个命令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl命令了,当然还有HTTP API和UI两种管理手段。
rabbitmqctl的使用方法:
1
2
3
|
rabbitmqctl [
-
n <node>] [
-
q] <command> [<command options>]
-
n node 默认node名称是
"rabbit@server"
,如果你的主机明是
'server.example.com'
,那么node名称是
'rabbit@server'
。
-
q 安静输出模式,信息会被禁止输出
|
基本的管理功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
stop [<pid_file>]
#停止在erlang node上运行的rabbitmq,会使rabbitmq停止
stop_app
#停止erlang node上的rabbitmq的应用,但是erlang node还是会继续运行的
start_app
#启动erlan node上的rabbitmq的应用
wait <pid_file>
#等待rabbitmq服务启动
reset
#初始化node状态,会从集群中删除该节点,从管理数据库中删除所有数据,例如vhosts等等。在初始化之前rabbitmq的应用必须先停止
force_reset
#无条件的初始化node状态
rotate_logs <suffix>
#轮转日志文件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
join_cluster <clusternode> [
-
-
ram]
#clusternode表示node名称,--ram表示node以ram node加入集群中。默认node以disc node加入集群,在一个node加入cluster之前,必须先停止该node的rabbitmq应用,即先执行stop_app。
cluster_status
#显示cluster中的所有node
change_cluster_node_type disc | ram
#改变一个cluster中node的模式,该节点在转换前必须先停止,不能把一个集群中唯一的disk node转化为ram node
forget_cluster_node [
-
-
offline]
#远程移除cluster中的一个node,前提是该node必须处于offline状态,如果是online状态,则需要加--offline参数。
update_cluster_nodes clusternode
#
sync_queue queue
#同步镜像队列
cancel_sync_queue queue
#
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
add_user <username> <password>
#在rabbitmq的内部数据库添加用户
delete_user <username>
#删除一个用户
change_password <username> <newpassword>
#改变用户密码 \\改变web管理登陆密码
clear_password <username>
#清除用户密码,禁止用户登录
set_user_tags <username> <tag> ...
#设置用户tags
list_users
#列出用户
add_vhost <vhostpath>
#创建一个vhosts
delete_vhost <vhostpath>
#删除一个vhosts
list_vhosts [<vhostinfoitem> ...]
#列出vhosts
set_permissions [
-
p <vhostpath>] <user> <conf> <write> <read>
#针对一个vhosts 给用户赋予相关权限
clear_permissions [
-
p <vhostpath>] <username>
#清除一个用户对vhosts的权限
list_permissions [
-
p <vhostpath>]
#列出哪些用户可以访问该vhosts
list_user_permissions <username>
#列出该用户的访问权限
set_parameter [
-
p <vhostpath>] <component_name> <name> <value>
#
clear_parameter [
-
p <vhostpath>] <component_name> <key>
#
list_parameters [
-
p <vhostpath>]
#
|
1
2
3
4
5
6
7
|
set_policy [
-
p <vhostpath>] [
-
-
priority <priority>] [
-
-
apply
-
to <
apply
-
to>]
<name> <pattern> <definition>
#name 策略名称,pattern 正则表达式,用来匹配资源,符合的就会应用设置的策略,apply-to 表示策略应用到什么类型的地方,一般有queues、exchange和all,默认是all。priority 是个整数优先级,definition 是json格式设置的策略。
clear_policy [
-
p <vhostpath>] <name>
#清除一个策略
list_policies [
-
p <vhostpath>]
#列出已有的策略
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
list_queues [
-
p <vhostpath>] [<queueinfoitem> ...]
#返回queue的信息,如果省略了-p参数,则默认显示的是"/"vhosts的信息。
list_exchanges [
-
p <vhostpath>] [<exchangeinfoitem> ...]
#返回exchange的信息。
list_bindings [
-
p <vhostpath>] [<bindinginfoitem> ...]
#返回绑定信息。
list_connections [<connectioninfoitem> ...]
#返回链接信息。
list_channels [<channelinfoitem> ...]
#返回目前所有的channels。
list_consumers [
-
p <vhostpath>]
#返回consumers,
status
#显示broker的状态
environment
#显示环境参数的信息
report
#返回一个服务状态report,
eval
<expr>
|
rabbitmq支持各种插件,开启插件可以使用rabbitmq-plugins命令
插件的开启和关闭方法
1
2
3
4
5
|
rabbitmq
-
plugins <command> [<command options>]
Commands:
list
[
-
v] [
-
m] [
-
E] [
-
e] [<pattern>] 显示所有的的插件。
-
v 显示版本
-
m 显示名称
-
E 显示明确已经开启的
-
e显示明确的和暗中开启的
enable <plugin> ... 开启一个插件
disable <plugin> ... 关闭一个插件
|
开启:rabbitmq-plugins enable rabbitmq_management
rabbitmq_management提供一个基于HTTP的API接口,来管理和监控你的rabbitmq。他有web方式和CLI方式,其实web方式是在后端调用HTTP api
rabbitmq_management插件的用法:
1
2
3
|
web http:
/
/
host:
15672
/
api http:
/
/
host:
15672
/
api
/
cli http:
/
/
host:
15672
/
cli
|