-
安裝服務(root)
erlang官方安裝說明:https://www.erlang-solutions.com/resources/download.html
step 1: 安裝erlang的yum源 (或者安裝epel源,如果不要求最最新版本的話)
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
step 2:
安裝erlang
# yum clean all ; yum makecache
# yum install erlang -y (Rabbitmq 基於 erlang 語言開發,所以需要安裝 erlang 虛擬機)
step 3:
確認erlang安裝成功
# erl
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]
Eshell V5.8.5 (abort with ^G)
1>io:format("hello world ~n").
輸出 hello world ok 安裝erlang完畢, 用 halt(). 退出
step 4:
安裝rabbitmq-server
Rabbitmq官方安裝說明: http://www.rabbitmq.com/install-rpm.html
導入rabbitmq 數字簽名key 支持后安裝
rabbitmq-server安裝完成
第一次安裝時沒有更新EPEL安裝到這里遇到的問題:
提示erlang 版本支持問題
Error: Package: rabbitmq-server-3.4.2-1.noarch (/rabbitmq-server-3.4.2-1.noarch)
Requires: erlang >= R12B-3
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
刪除所有相關rpm包后重新按照官方文檔安裝
rpm -e epel-release-6-8.noarch
-
運行RabbitMQ Server
設置開機自動啟動 rabbitmq-server# chkconfig --level 35 rabbitmq-server on啟動rabbitmq-server [start][stop][etc]# service rabbitmq-server startrabbitmqctl status #查看運行信息
- 安裝插件管理界面
webmachine error: path="/api/whoami"
"Unauthorized"
touch /etc/rabbitmq/rabbitmq-env.conf
RABBITMQ_NODENAME=rabbit@server-66 #節點名稱
RABBITMQ_NODE_IP_ADDRESS=0.0.0.0 #監聽IP
RABBITMQ_NODE_PORT=5672 #監聽端口
RABBITMQ_LOG_BASE=/data/rabbitmq/log #日志目錄
RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins #插件目錄,,默認 /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.1/plugins
RABBITMQ_PLUGINS_EXPAND_DIR=/data/rabbitmq/plugins-expand #擴展插件目錄,默認/var/lib/rabbitmq/mnesia/rabbit@server-65-plugins-expand
RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia #后端存儲目錄
rabbitctl
rabbitmqctl 是rabbitMQ中間件的一個命令行管理工具。它通過連接一個中間件節點執行所有的動作。
rabbitmqctl [-n node] [-q] {command} [command options…]
[-n node]
默認的節點是”rabbit@server”,一般是本地節點。
rabbitmqctl 默認產生詳細輸出。通過”-q”標示可選擇安靜模式。
應用和集群管理
1. 停止rabbitMQ應用,關閉節點 : rabbitmqctl stop
2. 停止rabbitMQ應用 : rabbitmqctl stop_app
3. 啟動rabbitMQ應用 : rabbitmqctl start_app
4. 顯示rabbitMQ中間件各種信息 : rabbitmqctl status
5. 重置rabbitMQ節點 : rabbitmqctl reset和 rabbitmqctl force_reset 從它屬於的任何集群中移除,從管理數據庫中移除所有數據,例如配置過的用戶和虛擬宿主, 刪除所有持久化的消息。 force_reset命令和reset的區別是無條件重置節點,不管當前管理數據庫狀態以及集群的配置。如果數據庫或者集群配置發生錯誤才使用這個最后 的手段。 注意:只有在停止rabbitMQ應用后,reset和force_reset才能成功。
6. 循環日志文件 : rabbitmqctl rotate_logs[suffix]
7. 加入到某個節點中:rabbitmqctl join_cluster {clusternode} [--ram]默認是ram類型的,也可以是disc類型
8. 集群目前的狀態:rabbitmqctl cluster_status
9. 改變當前節點的類型:rabbitmqctl change_cluster_node_type {disc | ram}使用這個命令的時候必須先把該節點stop。
10. 同步某個隊列(建立鏡像隊列):rabbitmqctl sync_queue {queue-name}
11. 取消同步某個隊列:rabbitmqctl cancel_sync_queue{queue-name}
用戶管理
1. 添加用戶:rabbitmqctl add_user username password
2. 刪除用戶:rabbitmqctl delete_user username
3. 修改密碼:rabbitmqctl change_password username newpassword
4. 清除密碼:rabbitmqctl clear_password {username}
5. 設置用戶標簽:rabbitmqctl set_user_tags {username} {tag…}如果tag為空則表示清除這個用戶的所有標簽
6. 列出所有用戶 :rabbitmqctl list_users
權限控制
1. 創建虛擬主機:rabbitmqctl add_vhost vhostpath
2. 刪除虛擬主機:rabbitmqctl delete_vhost vhostpath
3. 列出所有虛擬主機:rabbitmqctl list_vhosts
4. 設置用戶權限:rabbitmqctl set_permissions [-p vhostpath] {username} {conf} {write} {read}
5. 清除用戶權限:rabbitmqctl clear_permissions [-p vhostpath] {username}
6. 列出虛擬主機上的所有權限:rabbitmqctl list_permissions [-p vhostpath]
7. 列出用戶權限:rabbitmqctl list_user_permissions {username}
參數管理
這個不常用,具體的可以去官網看文檔
協議管理
1. 設置協議:rabbitmqctl set_policy [-p vhostpath] [--priority priority] [--apply-to apply-to] {name} {pattern} {definition}
a) name
協議的名字
b) pattern
匹配的正則表達式
c) definition
json term的形式來定義這個協議
d) priority
優先級,數字越大優先級越高,默認為0
e) apply-to
policy的類型,有三種:queues exchanges all 默認為all,具體定義可以去官網看文檔
2. 清除協議:rabbitmqctl clear_policy [-p vhostpath] {name}
3. 列出協議列表:rabbitmqctl list_policies [-p vhostpath]
服務器狀態
1. 隊列列表:rabbitmqctl list_queues [-p vhostpath] [queueinfoitem…]
queueinfoitem:
a) name
b) durable
c) auto_delete
d) arguments
e) policy
f) pid
g) owner_pid
h) exclusive_consumer_pid
i) exclusive_consumer_tag
j) messages_ready
k) messages_unacknowledged
l) messages
m) consumers
n) active_consumers
o) memory
p) slave_pids
q) synchronized_slave_pids
r) status
2. 交換機列表:rabbitmqctl list_exchanges [-p vhostpath] [exchangeinfoitem…]
exchangeinfoitem:
a) name
b) type
c) durable
d) auto_delete
e) internal
f) arguments
g) policy
3. 綁定列表:rabbitmqctl list_bindings [-p vhostpath] [bindinginfoitem…]
bindinginfoitem:
a) source_name
b) source_kind
c) destination_name
d) destination_kind
e) routing_key
f) arguments
4. 連接列表:rabbitmqctl list_connections不常用,具體去官網看文檔
5. 通道列表:rabbitmqctl list_channels不常用,具體去官網看文檔
6. 消費者列表:rabbitmqctl list_consumers
7. 當前狀態:rabbitmqctl status
8. 當前環境:rabbitmqctl environment
9. 相關報告:rabbitmqctl report
一些其他的命令
后台開啟rabbitmq服務:rabbitmq-server –detached
聲明隊列:rabbitmqadmin declare queue name=queue-name durable={false | true}
發布消息:rabbitmqadmin publish exchange=exchange-name routing_key=key payload=”context”
如果有任何疑問可以去官網看文檔:
