Bootstrap

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\"}"
    
    rabbitmqctl set_policy -p jjw-uplus  ha-all "^" "{\"ha-mode\":\"all\",\"ha-sync-mode\":\"automatic\"}"
    
    下面的例子将“two.”开头的queue mirror到cluster中两个节点,且自动同步
    rabbitmqctl set_policy ha-two "^two\\." "{\"ha-mode\":\"exactly\",\"ha-params\":2,\"ha-sync-mode\":\"automatic\"}"
    
    pattern 是匹配队列名称的正则表达式, 进行区分哪些队列使用哪些策略
    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
    

获取队列信息

  • 获取队列信息:
    rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]
    
    Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,messages_unacknowledged,messages,consumers,memory.

获取Exchange信息

  • 获取Exchange信息:
    rabbitmqctl list_exchanges[-p vhostpath] [exchangeinfoitem ...]
    
    Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.

获取Binding信息

  • 获取Binding信息:
    rabbitmqctl list_bindings[-p vhostpath] [bindinginfoitem ...]
    
    Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments.

获取Connection信息

  • 获取Connection信息:
    rabbitmqctl list_connections [connectioninfoitem ...]
    
    Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等.

获取Channel信息

  • 获取Channel信息:
    rabbitmqctl list_channels[channelinfoitem ...]
    
    Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked.

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;