一、RedHat 7.2中安裝與啟動RabbitMQ
點擊或復制鏈接下載:
http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
上傳到 /usr/local/software文件夾中
使用XShell鏈接Linux,文件上傳使用SmarTTy,SmarTTy也可以鏈接Linux,但對中文支持不好,好處是SmarTTy可以無需安裝任何軟件就可將windows文件上傳到虛擬機中的Linux系統中
[root@bogon software]# ll
總用量 23588
-rw-r--r--. 1 root root 18345424 12月 16 00:46 erlang-18.3-1.el7.centos.x86_64.rpm
-rw-r--r--. 1 root root 5520417 12月 16 00:45 rabbitmq-server-3.6.5-1.noarch.rpm
-rw-r--r--. 1 root root 284676 12月 16 00:45 socat-1.7.3.2-5.el7.lux.x86_64.rpm
[root@bogon software]#
使用rpm命令安裝,rpm命令會對軟件環境、配置文件等進行自動配置,不會有rabbitmq.config配置文件
安裝erlang-18.3-1.el7
[root@bogon software]# rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
準備中... ################################# [100%]
正在升級/安裝...
1:erlang-18.3-1.el7.centos ################################# [100%]
[root@bogon software]#
如果直接安裝rabbitmq-server-3.6.5-1,會提示"錯誤:依賴檢測失?。簊ocat 被 rabbitmq-server-3.6.5-1.noarch 需要",所以要先安裝socat
[root@bogon software]# rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
警告:rabbitmq-server-3.6.5-1.noarch.rpm: 頭V4 RSA/SHA1 Signature, 密鑰 ID 6026dfca: NOKEY
錯誤:依賴檢測失?。? socat 被 rabbitmq-server-3.6.5-1.noarch 需要
[root@bogon software]#
安裝socat-1.7.3.2-5
[root@bogon software]# rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
警告:socat-1.7.3.2-5.el7.lux.x86_64.rpm: 頭V4 DSA/SHA1 Signature, 密鑰 ID 53e4e7a9: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:socat-1.7.3.2-5.el7.lux ################################# [100%]
[root@bogon software]#
安裝rabbitmq-server-3.6.5
[root@bogon software]# rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
警告:rabbitmq-server-3.6.5-1.noarch.rpm: 頭V4 RSA/SHA1 Signature, 密鑰 ID 6026dfca: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:rabbitmq-server-3.6.5-1 ################################# [100%]
[root@bogon software]#
打開rabbit.app文件按i鍵進行編輯
[root@bogon software]# vi /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
找到{loopback_users, [<<"guest">>]},改為{loopback_users, [guest]},修改loopback_users值的作用是修改RabbitMQ管控臺的登錄賬號,默認是被注釋的,修改完成后按i鍵,輸入wq保存退出
輸入rabbitmq后按tab自動補全,會出現三個命令
[root@bogon software]# rabbitmq
rabbitmqctl rabbitmq-plugins rabbitmq-server
rabbitmqctl對rabbitmq對rabbitmq進行操作
rabbitmq-plugins安裝rabbitmq插件
rabbitmq-server開啟、關閉rabbitmq服務
執行"rabbitmq-server start &"啟動rabbitmq
[root@bogon software]# rabbitmq-server start &
[2] 10662
[root@bogon software]# ERROR: node with name "rabbit" already running on "bogon"
如果執行報錯"node with name "rabbit" already running",則說明已經啟動,我們執行ps -ef |grep rabbitmq命令查看正在執行的rabbitmq服務
[root@bogon software]# ps -ef |grep rabbitmq
root 9632 2002 0 02:43 pts/1 00:00:00 /bin/sh /usr/sbin/rabbitmq-server start
root 9642 9632 0 02:43 pts/1 00:00:00 su rabbitmq -s /bin/sh -c /usr/lib/rabbitm/bin/rabbitmq-server 'start'
rabbitmq 9643 9642 0 02:43 ? 00:00:00 /bin/sh -e /usr/lib/rabbitmq/bin/rabbitmq-server start
rabbitmq 9718 1 0 02:43 ? 00:00:00 /usr/lib64/erlang/erts-7.3/bin/epmd -daemon
rabbitmq 9731 9643 0 02:43 ? 00:00:06 /usr/lib64/erlang/erts-7.3/bin/beam -W w -A
我們可以看到有三個rabbitmq相關的進程rabbitmq 9643、rabbitmq 9718、rabbitmq 9731,終止這三個進程
[root@bogon software]# kill 9643
[root@bogon software]# kill 9718
[1]+ 完成 rabbitmq-server start
[root@bogon software]# kill 9731
再次查看rabbitmq服務,已經沒有rabbitmq的服務了
[root@bogon software]# ps -ef | grep rabbitmq
root 11684 2002 0 03:48 pts/1 00:00:00 grep --color=auto rabbitmq
重新執行rabbitmq-server start &,啟動rabbitmq服務
[root@bogon software]# rabbitmq-server start &
[1] 11686
[root@bogon software]#
RabbitMQ 3.6.5. Copyright (C) 2007-2016 Pivotal Software, Inc.
## ## Licensed under the MPL. See http://www.rabbitmq.com/
## ##
########## Logs: /var/log/rabbitmq/rabbit@bogon.log
###### ## /var/log/rabbitmq/rabbit@bogon-sasl.log
##########
Starting broker...
completed with 0 plugins.
[root@bogon software]#
我們看到打印信息Logs: /var/log/rabbitmq/rabbit@bogon.log, /var/log/rabbitmq/是日志存放的路徑,bogon是主機名,通過以下命令修改主機名
[root@bogon software]# vi /etc/hostname
安裝RabbitMQ插件,查看rabbitmq默認提供的插件
[root@bogon software]# rabbitmq-plugins list
Configured: E = explicitly enabled; e = implicitly enabled
| Status: [failed to contact rabbit@bogon - status not shown]
|/
[ ] amqp_client 3.6.5
[ ] cowboy 1.0.3
[ ] cowlib 1.0.1
[ ] mochiweb 2.13.1
[ ] rabbitmq_amqp1_0 3.6.5
[ ] rabbitmq_auth_backend_ldap 3.6.5
[ ] rabbitmq_auth_mechanism_ssl 3.6.5
[ ] rabbitmq_consistent_hash_exchange 3.6.5
[ ] rabbitmq_event_exchange 3.6.5
[ ] rabbitmq_federation 3.6.5
[ ] rabbitmq_federation_management 3.6.5
[ ] rabbitmq_jms_topic_exchange 3.6.5
[ ] rabbitmq_management 3.6.5
[ ] rabbitmq_management_agent 3.6.5
[ ] rabbitmq_management_visualiser 3.6.5
[ ] rabbitmq_mqtt 3.6.5
[ ] rabbitmq_recent_history_exchange 1.2.1
[ ] rabbitmq_sharding 0.1.0
[ ] rabbitmq_shovel 3.6.5
[ ] rabbitmq_shovel_management 3.6.5
[ ] rabbitmq_stomp 3.6.5
[ ] rabbitmq_top 3.6.5
[ ] rabbitmq_tracing 3.6.5
[ ] rabbitmq_trust_store 3.6.5
[ ] rabbitmq_web_dispatch 3.6.5
[ ] rabbitmq_web_stomp 3.6.5
[ ] rabbitmq_web_stomp_examples 3.6.5
[ ] sockjs 0.3.4
[ ] webmachine 1.10.3
使用rabbitmq-plugins enable + "插件名"命令開啟RabbitMQ默認插件
[root@bogon ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@bogon... started 6 plugins.
[root@bogon ~]#
rabbitmq默認啟動rabbitmq_management 插件,該插件用來啟動管控臺,管控臺默認端口號是15672,端口號5671用來與java端進行通信的端口號,25672是rabbitmq集群進行通信的端口號,打開瀏覽器輸入虛擬機IP+:15672,賬號密碼為我們之前修改/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app文件中{loopback_users, [guest]}的guset
可以看到管控臺頁面
二、rabbitmq的rabbitmqctl命令說明
基礎操作:
rabbitmqctl start_app 啟動rabbitmq服務
rabbitmqctl stop_app 關閉rabbitmq服務
rabbitmqctl status 節點狀態
rabbitmqctl add_user username password 添加用戶
rabbitmqctl list_users 查看所有用戶
rabbitmqctl delete_users username 刪除用戶
rabbitmqctl clear_permissions -p vhostpath username 清除用戶權限
rabbitmqctl list_user_permissions username 查詢用戶權限
rabbitmqctl change_password username newpassword 修改密碼
rabbitmqctl set_permissions -p vhostpath username "." "." ".*" 設置用戶權限
rabbitmqctl add_vhost vhostpath 創建虛擬主機
rabbitmqctl list_vhosts 查看所有虛擬主機,默認虛擬主機名為"/"
rabbitmqctl list_psermissions -p vhostpath 查詢虛擬主機上所有權限
rabbitmqctl delete_vhost vhostpath 刪除虛擬主機
rbbitmqctl list_queues 查詢所有隊列信息
rabbitmqctl -p vhostpath purge_queue blue 清除隊列里的消息
高級操作:
rabbitmqctl reset 移除所有數據,要在rabbitmqctl stop_app之后使用
rabbitmqctl join_cluster <clusternode> [--ram] 組成集群命令,默認硬盤級別存儲將消息落入磁盤,--ram內存級別存儲將消息保存在內存中
rabbitmqctl change_culster_node_type disc | ram 修改集群節點的存儲模式,磁盤存儲,內存存儲
rabbitmqctl forget_cluster_node [--offline] 忘記節點(摘除節點,當有節點壞掉,可以通過該命令摘除壞掉節點,這種方式是最簡單的失敗轉移,--offine如果有主節點壞掉,這樣整個rabbitmq服務無法啟動,這時使用--offine命令可以在rabbitmq服務沒有啟動的時候摘除主節點)
rabbitmqctl rename_cluster_node oldnode1 newnode1 [newnode1] [newnode2...] 修改節點名稱