Rabbitmq学习之路-rabbitmqctl
学习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中的所有nodechange_cluster_node_type
disc | ram #改变一个cluster中node的模式,该节点在转换前必须先停止,不能把一个集群中唯一的disk
node转化为ram nodeforget_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> ... #设置用户tagslist_users
#列出用户add_vhost
<vhostpath> #创建一个vhostsdelete_vhost
<vhostpath> #删除一个vhostslist_vhosts
[<vhostinfoitem> ...] #列出vhostsset_permissions
[-p
<vhostpath>] <user> <conf> <write> <read> #针对一个vhosts
给用户赋予相关权限clear_permissions
[-p
<vhostpath>] <username> #清除一个用户对vhosts的权限list_permissions
[-p
<vhostpath>] #列出哪些用户可以访问该vhostslist_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 |
/**** Love U Love Myself ****/
浙公网安备 33010602011771号