rabbitMQ常见命令
单机常见命令
启动
- 启动服务:
systemctl start rabbitmq-server
service rabbitmq-server start
rabbitmqctl start_app
查看状态
- 查看服务状态:
sudo systemctl status rabbitmq-server
设置开机自启动
- 设置开机自启动:
sudo systemctl enable rabbitmq-server
禁止开机自启动
- 禁止开机自启动:
sudo systemctl disable rabbitmq-server
用户管理
- 添加用户:
rabbitmqctl add_user <username> <password>
- 列出用户:
rabbitmqctl list_users
- 删除用户:
rabbitmqctl delete_user <username>
- 设置用户管理员角色:
rabbitmqctl set_user_tags <username> administrator
权限管理
- 列出用户权限:
rabbitmqctl list_users
rabbitmqctl list_user_permissions <username>
队列管理
- 列出队列:
rabbitmqctl list_queues
- 清除队列:
rabbitmqctl clear_queue <queue_name>
交换机管理
- 列出交换机:
rabbitmqctl list_exchanges
绑定管理
- 列出绑定:
rabbitmqctl list_bindings
其他
-
重置清除节点的配置(先stop_app,后reset节点):
rabbitmqctl stop_app
rabbitmqctl reset
-
启用日志插件命令:
rabbitmq-plugins enable rabbitmq_tracing
消息集群常用命令
加入集群
- 加入集群[–ram添加内存模式 默认disk模式]:
rabbitmqctl join_cluster --ram rabbit@mq01
查看集群状态
- 查看集群状态:
rabbitmqctl cluster_status
更改节点模式
- 更改节点模式[顺序 关闭运用-〉更改类型->开启运用]:
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc/ram
rabbitmqctl start_app
创建策略
- 创建策略(集群同步策略……):
set_policy [-p vhostpath] {name} {pattern} {definition} [priority]
查看策略
- 查看策略:
rabbitmqctl list_policies
移除远程offline的节点
- 移除远程offline的节点:
rabbitmqctl stop_app
rabbitmqctl forget_cluster_node rabbit@mq02
设置集群名称
- 设置集群名称:
rabbitmqctl set_cluster_name cluster_name
设置镜像模式
- 设置镜像模式:
rabbitmqctl set_policy ha-all "^ha." "{\"ha-mode\":\"all\"}"
rabbitmqctl set_policy ha-all "^" "{\"ha-mode\":\"all\",\"ha-sync-mode\":\"automatic\"}"
下面的例子将“two.”开头的queue mirror到cluster中两个节点,且自动同步rabbitmqctl set_policy -p jjw-uplus ha-all "^" "{\"ha-mode\":\"all\",\"ha-sync-mode\":\"automatic\"}"
pattern 是匹配队列名称的正则表达式, 进行区分哪些队列使用哪些策略rabbitmqctl set_policy ha-two "^two\\." "{\"ha-mode\":\"exactly\",\"ha-params\":2,\"ha-sync-mode\":\"automatic\"}"
definition 其实就是一些arguments, 支持如下参数:- ha-mode: One of all, exactly or nodes (the latter currently not supported by web UI).
- ha-params: Absent if ha-mode is all, a number if ha-mode is exactly, or an array of strings if ha-mode is nodes.
- ha-sync-mode: One of manual or automatic. 如果不指定该参数默认为manual.
- federation-upstream-set: A string; only if the federation plugin is enabled.
可通过如下命令确认哪些slave在同步
rabbitmqctl list_queues name slave_pids synchronised_slave_pids
手动同步queue
- 手动同步queue:
rabbitmqctl sync_queue name
取消queue同步
- 取消queue同步:
rabbitmqctl cancel_sync_queue name
查看所有队列信息
- 查看所有队列信息:
rabbitmqctl list_queues
获取队列信息
- 获取队列信息:
Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,messages_unacknowledged,messages,consumers,memory.rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]
获取Exchange信息
- 获取Exchange信息:
Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.rabbitmqctl list_exchanges[-p vhostpath] [exchangeinfoitem ...]
获取Binding信息
- 获取Binding信息:
Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments.rabbitmqctl list_bindings[-p vhostpath] [bindinginfoitem ...]
获取Connection信息
- 获取Connection信息:
Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等.rabbitmqctl list_connections [connectioninfoitem ...]
获取Channel信息
- 获取Channel信息:
Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked.rabbitmqctl list_channels[channelinfoitem ...]