目錄
寫在前面
這裏介紹下RabbitMQ的相關架構,還有服務端的相關命令
rabbitMQ是Erlang語言開發的消息中間件,會不同於kafka,RocketMQ
rabbitMQ中多了User(Tag)、Virtual Hosts(綁定用戶,Tag)、policy(這裏更高級的操作,多機房部署,異地多活機制)
本篇包括以下幾個方面的學習
- 服務搭建
- 服務端命令學習
- 基本架構
- 頁面管理、監控
- 更多客戶端API操作,可鏈接
一、服務搭建
docker pull rabbitmq:3.8-management
docker run -d --name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-v /my/rabbitmq/data:/var/lib/rabbitmq \
--hostname myrabbit \
-e RABBITMQ_DEFAULT_VHOST=/vhost \
-e RABBITMQ_DEFAULT_USER=root \
-e RABBITMQ_DEFAULT_PASS=root \
rabbitmq:3.8-management
頁面管理
http://localhost:15672/
二、基本架構
架構建立在 虛擬主機和用戶上
2.1、user
2.2、Virtual host
知識點
- 虛擬主機,一般設定是要綁定用戶權限的,頁面這裏並沒有體現!!
可以命令行 綁定虛擬主機用戶權限,參考下文
policies 是虛擬主機的參數配置,
2.3、policies
policies 是參數配置
這個設置也是RabbitMQ不同於其他MQ的東西,可以設置Queue和Exchange的相關參數,異地多活實現中會用到這個參數配置
2.4、Exchange
Exchange和Queue纔是我們的操作和監控對象…,
這個Exchange是一個比較重要的概念,交換機,可以路由 topic 、key ?? 待研究
2.5、Queue
需要注意 Queue 的知識點
- Type - - Classic(經典) / Quorum(法定)
- Durability - - Durable(耐用,持久存儲) / transient(臨時存儲)
- autoDelete - - NO / YES
三、服務端命令學習
3.1、用戶管理
添加用戶
rabbitmqctl add_user username password
列出所有用戶
rabbitmqctl list_users
刪除用戶
rabbitmqctl delete_user username
清除用戶權限
rabbitmqctl clear_permissions -p vhostpath username
列出用戶權限
rabbitmqctl list_user_permissions root
修改密碼
rabbitmqctl change_password username newpassword
3.2、虛擬主機管理
列出所以虛擬主機:
rabbitmqctl list_vhosts
列出虛擬主機上的所有權限:
rabbitmqctl list_permissions -p h3
創建虛擬主機:
rabbitmqctl add_vhost h3
設置用戶權限:
rabbitmqctl set_permissions -p h3 username ".*" ".*" ".*"
刪除虛擬主機:
rabbitmqctl delete_vhost vhost h3
關於設置權限的時候,必須指定虛擬主機(智能單個指定)
3.3、服務狀態、集羣監控
移除所有數據,要在 rabbitmqctl stop_app 之後使用: rabbitmqctl reset
組成集羣命令: rabbitmqctl join_cluster <clusternode> [--ram]
查看集羣狀態: rabbitmqctl cluster_status
修改集羣節點的存儲形式: rabbitmqctl change_cluster_node_type disc | ram
摘除節點:rabbitmqctl forget_cluster_node [--offline]
修改節點名稱:rabbitmqctl rename_cluster_node oldnode1 newnode1