1. 程式人生 > >RabbitMQ實踐--伺服器安裝、配置與命令

RabbitMQ實踐--伺服器安裝、配置與命令

ubuntu安裝rabbitmq-server

按照官網的APT repositories方法安裝

#新增以下地址到/etc/apt/sources.list
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
#新增public key
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
#更新源
sudo apt-get update
#安裝rabbitmq
sudo apt-get install rabbitmq-server
#開啟rabbitmq_management外掛,本機用guest/guest 可以訪問 http://127.0.0.1:15672
sudo rabbitmq-plugins enable rabbitmq_management
#檢視使用者 
sudo rabbitmqctl list_users
#新增管理員使用者,之後可以在區域網內用 設定的帳號admin/密碼admin登入了
sudo rabbitmqctl add_user admin admin 
sudo rabbitmqctl set_user_tags admin administrator

配置

一般情況下,RabbitMQ的預設配置就足夠了。如果希望特殊設定的話,有兩個途徑:
一個是環境變數的配置檔案 rabbitmq-env.conf ;
一個是配置資訊的配置檔案 rabbitmq.config;
注意,這兩個檔案預設是沒有的,如果需要必須自己建立。

rabbitmq-env.conf

這個檔案的位置是確定和不能改變的,位於:/etc/rabbitmq目錄下(這個目錄需要自己建立)。
檔案的內容包括了RabbitMQ的一些環境變數,常用的有:

RABBITMQ_NODE_IP_ADDRESS=   #IP地址,空串bind所有地址,指定地址bind指定網路介面
RABBITMQ_NODE_PORT= #TCP埠號,預設是5672 HOSTNAME= RABBITMQ_NODENAME= #節點名稱。預設是rabbit RABBITMQ_CONFIG_FILE= #配置檔案路徑 ,即rabbitmq.config檔案路徑 RABBITMQ_MNESIA_BASE= #需要使用的MNESIA資料庫的路徑 RABBITMQ_LOG_BASE= #log的路徑 RABBITMQ_PLUGINS_DIR= #外掛的路徑

rabbitmq.config

這是一個標準的erlang配置檔案。它必須符合erlang配置檔案的標準。
它既有預設的目錄,也可以在rabbitmq-env.conf檔案中配置。
linux可以看看:/usr/share/doc/rabbitmq-server-*/rabbitmq.config.example 可以直接複製過去改改用
windows在安裝目錄下的etc內也有例子檔案,可以參考README.txt配置使用

常用配置:

tcp_listerners          #設定rabbimq的監聽埠,預設為[5672]。
disk_free_limit         #磁碟低水位線,若磁碟容量低於指定值則停止接收資料,預設值為{mem_relative, 1.0},即與記憶體相關聯1:1,也可定製為多少byte.
vm_memory_high_watermark    #設定記憶體低水位線,若低於該水位線,則開啟流控機制,預設值是0.4,即記憶體總量的40%。
force_fine_statistics       #該引數屬於rabbimq_management,若為true則進行精細化的統計,但會影響效能。
frame_max               #包大小,若包小則低延遲,若包則高吞吐,預設是131072=128K。
heartbeat               #客戶端與服務端心跳間隔,設定為0則關閉心跳,預設是600秒。

命令說明

參考文件:http://www.rabbitmq.com/manpages.html
其中最重要的命令應該是rabbitmqctl了,其次會用到rabbimq-plugins,其餘的很少用到

伺服器啟動與關閉

啟動: rabbitmq-server –detached
關閉: rabbitmqctl stop
清空佇列,將RabbitMQ節點還原到最初狀態: rabbitmqctl reset
停止RabbitMQ應用但Erlang節點仍然執行: rabbitmqctl stop_app
開啟RabbitMQ應用:rabbitmqctl start_app
若單機有多個例項,則在rabbitmqctlh後加–n 指定名稱

外掛管理

開啟某個外掛:rabbitmq-plugins enable xxx
關閉某個外掛:rabbitmq-plugins disable xxx
注意:重啟伺服器後生效。

使用者許可權管理

新建使用者:rabbitmqctl add_user xxxpwd
刪除使用者: rabbitmqctl delete_user xxx
改密碼:rabbimqctl change_password {username} {newpassword}
設定使用者角色:rabbitmqctl set_user_tags {username} {tag …}
Tag可以為 none、management、policymaker、monitoring、administrator
增加vhost:rabbitmqctl add_vhost [vhostname]
賦許可權,為user_admin賦予/vhost1的所有資源的配置、寫、讀許可權:sudo rabbitmqctl set_permissions -p /vhost1 user_admin ‘.’ ‘.’ ‘.*’

RabbitMQ各類角色描述:
none
不能訪問 management plugin
management
使用者可以通過AMQP做的任何事外加:
列出自己可以通過AMQP登入的virtual hosts
檢視自己的virtual hosts中的queues, exchanges 和 bindings
檢視和關閉自己的channels 和 connections
檢視有關自己的virtual hosts的“全域性”的統計資訊,包含其他使用者在這些virtual hosts中的活動。
policymaker
management可以做的任何事外加:
檢視、建立和刪除自己的virtual hosts所屬的policies和parameters
monitoring
management可以做的任何事外加:
列出所有virtual hosts,包括他們不能登入的virtual hosts
檢視其他使用者的connections和channels
檢視節點級別的資料如clustering和memory使用情況
檢視真正的關於所有virtual hosts的全域性的統計資訊
administrator
policymaker和monitoring可以做的任何事外加:
建立和刪除virtual hosts
檢視、建立和刪除users
檢視建立和刪除permissions
關閉其他使用者的connections

叢集管理

加入一個叢集,預設disk模式,可用ram模式:rabbitmqctl join_cluster {clusternode} [–ram]
檢視叢集狀態:rabbitmqctl cluster_status
改變當前節點的模式:rabbitmqctl change_cluster_node_type disc
離開叢集,將 [email protected]離開 [email protected]:rabbitmqctl -n [email protected] forget_cluster_node [email protected]
重新命名叢集的節點:rabbitmqctl rename_cluster_node old new

檢視狀態

伺服器狀態:rabbitmqctl status
佇列資訊:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem …]
Exchange資訊:rabbitmqctl list_exchanges[-p vhostpath] [exchangeinfoitem …]
Binding資訊:rabbitmqctl list_bindings[-p vhostpath] [bindinginfoitem …]
Connection資訊:rabbitmqctl list_connections [connectioninfoitem …]
Channel資訊:rabbitmqctl list_channels[channelinfoitem …]
叢集資訊:rabbitmqctl cluster_status