作者介紹:簡歷上沒有一個精通的運維工程師。請點擊上方的藍色《運維小路》關注我,下面的思維導圖也是預計更新的內容和當前進度(不定時更新)。
中間件,我給它的定義就是為了實現某系業務功能依賴的軟件,包括如下部分:
Web服務器
代理服務器
ZooKeeper
Kafka
RabbitMQ(本章節)
到目前為止,我們的RabbitMQ的基本功能就算已經講解完畢,本小節給RabbitMQ的常用命令做一個總結,當然很多命令也可以通過網頁和http接口實現,具體用什么方式,就看個人習慣和技能的掌握程度。
1. rabbitmq-server 服務管理
# 前臺啟動(調試用)
rabbitmq-server# 后臺啟動
rabbitmq-server -detached# 停止后臺服務
rabbitmqctl?stop
2. rabbitmq-plugins 插件管理
# 列出所有插件
rabbitmq-plugins list# 啟用插件(如管理界面)
rabbitmq-plugins?enable?rabbitmq_management# 禁用插件
rabbitmq-plugins?disable?rabbitmq_management
3. rabbitmqctl 核心管理命令
3.1 節點狀態管理
# 查看節點狀態
rabbitmqctl?status# 檢查節點健康狀態
rabbitmqctl node_health_check# 查看運行環境參數
rabbitmqctl environment
3.2 用戶管理???????
# 添加用戶
rabbitmqctl add_user?<username>?<password># 刪除用戶
rabbitmqctl delete_user?<username># 修改密碼
rabbitmqctl change_password?<username>?<newpassword># 列出所有用戶
rabbitmqctl list_users# 設置用戶標簽(角色)
rabbitmqctl set_user_tags?<username>?<tag>
# 示例:設置為管理員
rabbitmqctl set_user_tags admin administrator
3.3 虛擬主機管理???????
# 添加虛擬主機
rabbitmqctl add_vhost <vhost_name># 刪除虛擬主機
rabbitmqctl delete_vhost <vhost_name># 列出所有虛擬主機
rabbitmqctl list_vhosts# 設置用戶權限
rabbitmqctl set_permissions -p <vhost> <user>?".*"?".*"?".*"
# 示例:
rabbitmqctl set_permissions -p /myvhost admin?".*"?".*"?".*"
3.4 交換機管理???????
# 列出所有交換機(默認交換機不會顯示)
rabbitmqctl list_exchanges [-p <vhost>] [name,?type, durable, auto_delete]# 示例:列出默認虛擬主機的所有交換機
rabbitmqctl list_exchanges -p / name?type?durable# 創建交換機(注意:通常由客戶端聲明,但可通過HTTP API操作)
# 使用 rabbitmqadmin 創建:
rabbitmqadmin?declare?exchange --vhost=/ name=my_exchange?type=direct durable=true
3.5 隊列管理???????
# 創建隊列
rabbitmqadmin?declare?queue --vhost=/ name=my_queue durable=true# 列出所有隊列
rabbitmqctl list_queues [-p <vhost>] [name, durable, auto_delete, messages, memory]# 示例:顯示隊列名和消息數
rabbitmqctl list_queues -p / name messages# 刪除隊列
rabbitmqadmin delete queue --vhost=/ name=my_queue
3.6 綁定管理
# 創建綁定
rabbitmqadmin?declare?binding --vhost=/ \source=exchange_name \destination=queue_name \routing_key=my.routing.key# 列出所有綁定關系
rabbitmqctl list_bindings [-p <vhost>]# 示例:顯示詳細綁定信息
rabbitmqctl list_bindings -p / source_name source_kind destination_name destination_kind routing_key# 刪除綁定
rabbitmqadmin delete binding --vhost=/ \source=exchange_name \destination=queue_name \routing_key=my.routing.key \destination_type=queue
???????
3.7 集群管理
# 加入集群
rabbitmqctl join_cluster rabbit@<master-node># 查看集群狀態
rabbitmqctl cluster_status# 修改節點類型(磁盤/內存節點)
rabbitmqctl change_cluster_node_type disc | ram# 從集群移除節點
rabbitmqctl forget_cluster_node rabbit@<node-to-remove>
3.8 策略上管理???????
???????
# 添加策略
rabbitmqctl set_policy [-p?<vhost>]?<name>?<pattern>?<definition>
# 示例:設置高可用策略
rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'# 列出策略
rabbitmqctl list_policies [-p?<vhost>]# 刪除策略
rabbitmqctl clear_policy [-p?<vhost>]?<name>