03.08 RabbitMQ常用命令

一:Mac安裝

Mac安裝比Windows安裝更加方便,也不需要再額外配置Web插件,因為在安裝的時候默認已經配置好了

<code>// 在Updating Homebrew...時可能會卡一會,只需要等就行了
// 在安裝的過程中可能因為網絡問題,可能會有部分會失敗,此時只需要載次執行該命令,直到全部成功即可,注意一定要檢查一下是否有部分失敗,為安全起見,可以多執行幾次該命令
brew install rabbitmq

// 配置環境變量,將下面添加到~/.bash_profile中即可
export PATH=$PATH:/usr/local/sbin

// 立即生效
source ~/.bash_profile

// 啟動RabbimtMQ服務, 注意安裝最新版的不需要再單獨安裝插件了,默認已經安裝過了,可以通過使用參數 -detached 以守護的方式後臺運行
rabbitmq-server
/<code>
RabbitMQ常用命令

安裝成功後就可以在瀏覽器上看到如下登錄頁面, 在地址欄中輸入http://localhost:15672/,Username:guest Password:guest, 使用訪客賬號就可登錄進去

RabbitMQ常用命令

RabbitMQ常用命令

二:Windows安裝

Windows安裝需要先安裝Erlang,再安裝RabbitMQ,再配置插件,在配置插件的時候可能會出現錯誤

  • 第一步:安裝Erlang OTP,由於RabbitMQ是用Erlang編寫的,所以在安裝RabbitMQ之前要先安裝Erlang 下載地址:http://www.erlang.org/downloads 下載最新版本即可,例如OTP 20.0 Windows 64-bit Binary File, 下載完成後解壓,雙擊otpwin6420.0.exe 一路next即可,安裝成功後需要配置環境變量,可以新建一個變量,例如ERLANGHOME=D:\\erl9.0,最後將環境變量追加到Path中去Path中追加:%ERLANGHOME\\bin%;
  • 第二步:安裝RabbitMQ,在官網上下載最新的RabbitMQ(http://www.rabbitmq.com/) 雙擊rabbitmq-server-3.6.10 一路next即可,安裝成功後同樣需要配置環境變量,將D:\\RabbitMQ\\rabbitmq_server-3.6.10\\sbin追加到Path中
  • 第三步:安裝RabbitMQ Management 插件,執行命令:rabbitmq-plugins enable rabbitmq_management 如果幸運的話一步成功,不知道最新版本會不會好安裝,如果在安裝中報錯,要根據具體錯誤來解決
<code>// 錯誤1:Plugin configuration unchanged
D:\\RabbitMQ\\rabbitmq_server-3.6.10\\sbin>rabbitmq-plugins enable rabbitmq_management
Plugin configuration unchanged.

Applying plugin configuration to rabbit@zm-PC... failed.
* Could not contact node rabbit@zm-PC.
Changes will take effect at broker restart.
* Options: --online - fail if broker cannot be contacted.
--offline - do not try to contact broker.

解決辦法:將C:\\Windows\\.erlang.cookie 覆蓋到C:\\Users\\用戶名下的.erlang.cookie文件

然後重新安裝:D:\\RabbitMQ\\rabbitmq_server-3.6.10\\sbin>rabbitmq-plugins enable rabbitmq_management
/<code>
<code>// 錯誤2:noting to do.
1.rabbitmq-plugins.bat enable rabbitmq_management
2.rabbitmq-service.bat stop
3.rabbitmq-service.bat install 這句話沒用,提示:RabbitMQ service is already present - onlyupdating service parameters
4.rabbitmq-service.bat start
打開瀏覽器登錄:http://127.0.0.1:15672
/<code>
RabbitMQ常用命令

我就是通過這種方式來解決錯誤的,雖然命令行中報錯,還出現亂碼,但是確實可以通過http://127.0.0.1:15672來訪問登錄頁面,參考的文章:http://blog.csdn.net/mooreliu/article/details/44673845

RabbitMQ Management 非常重要,它可以用來管理RabbitMQ,操作(CRUD)各種數據,在開發中和生產中都經常用到。

三:常用命令

一臺物理機器上可以有多個erlang節點(實例),每個節點可以運行多個應用程序,其中重要的應用程序有RabbitMQ、Erlang語言自帶的Mnesia數據庫,以及RabbitMQ相關的插件(如RabbitMQ Management)。可以將Erlang節點類比於java的JVM。

RabbitMQ常用命令

RabbitMQ Management 是一個用於操作RabbitMQ的管理界面,可以操作很多常用的操作,但是並不支持所有的操作,命令行支持所有功能。

rabbitmqctl命令行: 命令行比web管理界面更強大,web界面的命令只是rabbitmqctl命令的一個子集

  • 應用程序和集群管理(Application and Cluster Management)、
  • 集群配置(Cluster management)、
  • 用戶管理(User management)、
  • 訪問控制(Access Control)、
  • 參數管理(Parameter Management)、
  • 政策管理(Policy Management)、
  • 服務器狀態(Server Status)
  • Miscellaneous
<code>rabbitmq-server // 同時啟動erlang節點和應用程序

// 查看rabrabbitmqctl所支持的命令
rabrabbitmqctl

// 查看狀態
rabbitmqctl status

//停止erlang node,同時關閉erlang節點和應用程序
rabbitmqctl stop

// 停止RabbitMQ服務,僅關閉erlang節點上的rabbit應用程序
rabbitmqctl stop_app

// 啟動RabbitMQ服務
rabbitmqctl start_app

// 格式化rabbitmq node(在集群中需要滿足一定的條件才能關閉)
rabbitmqctl reset

// 強制格式化rabbitmq node
rabbitmqctl force_reset

// 清除某個隊列的所有消息
rabbitmqctl purge_queue <name>

// 添加用戶
rabbitmqctl add_user <username> <password>

// 設置權限
rabbitmqctl set_permissions -p / <username> ".*" ".*" ".*"

// 列舉權限
rabbitmqctl list_permissions -p <vhost>

// 列舉用戶的所有權限
rabbitmqctl list_user_permissions <username>

// 清除權限
rabbitmqctl clear_permissions -p <vhost> <username>

// 認證用戶
rabbitmqctl authenticate_user <username> <password>

// 修改密碼
rabbitmqctl change_password <username> <password>

// 列舉用戶
rabbitmqctl list_users

// 刪除用戶(刪除用戶時也會把用戶相關的權限都刪除)

rabbitmqctl delete_user <username>

// 設置tag, tag可以為none最小權限角色,management 管理員角色,policymaker決策者,monitoring 監控,administrator 超級管理員
rabbitmqctl set_user_tags <username>

// 添加虛擬主機
rabbitmqctl add_vhost <name>

// 刪除虛擬主機
rabbitmqctl delete_vhost <name>

// 查看所有虛擬主機
rabbitmqctl list_vhost [<vhostinfoitem> ...]

// 列舉默認虛擬機上的所有隊列
rabbitmqctl list_queues

// 列出指定虛擬機上的隊列
rabbitmqctl list_queues -p <vhost>

// 列舉隊列,包含隊列名稱、消息數目、消費者數目、內存使用情況、是否持久化、是否自動刪除
rabbitmqctl list_queues name messages counsumers memory durable auto_delete

// 查看交換機
rabbitmqctl list_exchanges [name] [type] [durable] [auto_delete]

// 列舉所有綁定
rabbitmqctl list_bindings [-p <vhost>]
/<vhost>/<vhost>/<vhostinfoitem>/<name>/<name>
/<username>/<username>/<password>/<username>/<password>/<username>/<username>/<vhost>/<username>/<vhost>/<username>/<password>/<username>/<name>/<code>
RabbitMQ常用命令


command line tool

通過curl命令行來訪問RabbitMQ Management 中的HTTP API(http://localhost:15672/api/), 返回的格式是json格式

RabbitMQ常用命令


rabbitmqadmin

<code>// 列出服務器上的隊列
rabbitmqadmin list queues

// 清空隊列上的消息
rabbitmqadmin purge queue name=<queue>

rabbitmqadmin -u <username> -p <password> declare exchange name=<exchange> type=<type>


// 列舉所有連接
rabbitmqadmin list connections name

// 關閉某個連接
rabbitmqadmin close connection name=<name>
/<name>/<type>/<exchange>/<password>/<username>/<queue>/<code>

管理RabbitMQ有4中方式

  • RabbitMQ Management(Web UI)
  • rabbitmqctl
  • command line tool(curl)
  • rabbitmqadmin

常用配置rabbitmq.config

實際開發中少不了對RabbitMQ的參數進行一些配置,如ip地址,端口號,允許RabbitMQ最大消耗的內存等配置,這些配置可以在配置文件中進行配置/usr/local/etc/rabbitmq/rabbitmq.config

RabbitMQ常用命令

RabbitMQ常用命令



分享到:


相關文章: