日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rabbitmq基础2——rabbitmq二进制安装和docker安装、基础命令

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rabbitmq基础2——rabbitmq二进制安装和docker安装、基础命令 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、RabbitMQ安裝
    • 1.1 二進(jìn)制安裝
    • 1.2 rabbitmqctl工具
    • 1.3 docker安裝
  • 二、rabbitmq基礎(chǔ)命令
    • 2.1 多租戶與權(quán)限類
      • 2.1.1 創(chuàng)建虛擬主機(jī)
      • 2.1.2 查看虛擬主機(jī)信息
      • 2.1.3 刪除虛擬主機(jī)
      • 2.1.4 給用戶授權(quán)
      • 2.1.5 清除用戶權(quán)限
      • 2.1.6 查看權(quán)限
    • 2.2 用戶管理類
      • 2.2.1 創(chuàng)建用戶
      • 2.2.2 查看用戶
      • 2.2.3 刪除用戶
      • 2.2.4 用戶指定角色
      • 2.2.5 更改用戶密碼
      • 2.2.6 清除用戶密碼
      • 2.2.7 密碼驗(yàn)證用戶
    • 2.3 插件使用類
      • 2.3.1 啟動(dòng)插件
      • 2.3.2 關(guān)閉插件
      • 2.3.3 查看插件使用情況
    • 2.4 應(yīng)用管理類
      • 2.4.1 啟動(dòng)rabbitmq服務(wù)
        • 2.4.1.1 前臺(tái)啟動(dòng)
        • 2.4.1.2 后臺(tái)啟動(dòng)
      • 2.4.2 關(guān)閉rabbitmq服務(wù)
        • 2.4.2.1 指定pid文件阻塞進(jìn)程關(guān)閉(stop)
        • 2.4.2.2 直接阻塞進(jìn)程關(guān)閉(shutdown)
      • 2.4.3 只停止應(yīng)用服務(wù)
      • 2.4.3 啟動(dòng)應(yīng)用服務(wù)
      • 2.4.4 等待應(yīng)用服務(wù)啟動(dòng)
      • 2.4.5 先停止應(yīng)用再重置rabbitmq服務(wù)狀態(tài)
      • 2.4.6 強(qiáng)制重置rabbitmq服務(wù)狀態(tài)
      • 2.4.7 輪換日志文件(已棄用)
      • 2.4.8 生成HiPE編譯代碼.beam文件(已棄用)

一、RabbitMQ安裝

1.1 二進(jìn)制安裝

需要提前下載兩個(gè)安裝包,兩個(gè)包的版本必須對(duì)應(yīng)。

  • Erlang官網(wǎng)
  • RabbitMQ官網(wǎng)
  • 安裝Erlang環(huán)境,注意版本要與RabbitMQ版本對(duì)應(yīng)。

  • 安裝包準(zhǔn)備。
[root@localhost rabbitmq]# ll -rw-r--r-- 1 root root 102985011 Dec 10 2022 otp_src_25.0.tar.gz -rw-r--r-- 1 root root 15288836 Dec 10 2022 rabbitmq-server-generic-unix-3.11.4.tar.xz


  • 安裝依賴環(huán)境。
  • [root@localhost rabbitmq]# yum install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel
  • 解壓安裝erlang環(huán)境。
  • [root@localhost rabbitmq]# tar zxf otp_src_25.0.tar.gz [root@localhost rabbitmq]# cd otp_src_25.0/ [root@localhost otp_src_25.0]# ./configure --prefix=/opt/backup/rabbitmq/erlang
  • 這個(gè)缺少wxWidgets報(bào)錯(cuò)問題可以忽略,不影響后面的編譯安裝,但可以嘗試下。
    • wxWidgets官網(wǎng)
    [root@localhost otp_src_25.0]# yum -y install bzip2 [root@localhost otp_src_25.0]# tar -jxvf wxWidgets-3.0.5.tar.bz2 [root@localhost otp_src_25.0]# cd wxWidgets-3.0.5 [root@localhost otp_src_25.0]# ./configure && make && sudo make install
  • 編譯安裝
  • [root@localhost otp_src_25.0]# make && make install

  • 配置環(huán)境變量
  • [root@localhost etc]# tail -2 /etc/profile export ERLANG_HOME=/opt/backup/rabbitmq/erlang export PATH=$ERLANG_HOME/bin:$PATH [root@localhost etc]# source /etc/profile
  • 檢查環(huán)境,輸入erl命令進(jìn)入erlang環(huán)境。
  • 安裝rabbitmq另外一個(gè)依賴。
  • [root@localhost ~]# yum install -y socat
  • 安裝rabbitmq,解壓安裝。
  • [root@localhost rabbitmq]#tar -xvf rabbitmq-server-generic-unix-3.11.4.tar.xz [root@localhost rabbitmq]# mv rabbitmq-server-3.11.4 rabbitmq [root@localhost rabbitmq]# cd rabbitmq/
  • 配置rabbitmq服務(wù)的環(huán)境變量。
  • [root@localhost rabbitmq]# tail -2 /etc/profile export ERLANG_HOME=/opt/backup/rabbitmq/rabbitmq export PATH=$ERLANG_HOME/sbin:$PATH [root@localhost etc]# source /etc/profile
  • 啟動(dòng)服務(wù)。
    • 前臺(tái)運(yùn)行方式啟動(dòng)
    [root@localhost rabbitmq]# rabbitmq-server start


    • 后臺(tái)運(yùn)行
    [root@localhost rabbitmq]# rabbitmq-server -detached
  • 開啟Web管理界面插件。
  • rabbitmq-plugins enable rabbitmq_management
  • 默認(rèn)用戶guest登陸失敗,3.0版本之后默認(rèn)用戶只能本機(jī)登錄,所以我們需要?jiǎng)?chuàng)建新用戶。

  • 14. 創(chuàng)建用戶

    [root@localhost rabbitmq]# rabbitmqctl add_user qingjun citms


    15. 指定角色

    [root@localhost rabbitmq]# rabbitmqctl set_user_tags qingjun administrator

    用戶角色5種類型:

  • none:無任何角色。新創(chuàng)建的用戶的角色默認(rèn)為none。
  • management:可以訪問Web管理頁面。
  • policymaker:包含management的所有權(quán)限,并且可以管理策略(policy)和參數(shù)(parameter)。
  • monitoring:包含management的所有權(quán)限,并且可以看到所有連接(connections)、信道(channels)以及節(jié)點(diǎn)相關(guān)的信息。
  • administartor:包含monitoring的所有權(quán)限,并且可以管理用戶、虛擬主機(jī)、權(quán)限、策略、參數(shù)等等。
    • administator代表了最高的權(quán)限。


    16. 用戶授權(quán)。

    命令格式:rabbitmqctl set_permissions [-p vhosts] {user} {conf} {write} {read}

    • [-p vhost]:授予用戶訪問權(quán)限的 vhost 名稱,如果不寫默認(rèn)為 /。
    • user:指定哪個(gè)用戶可以訪問該vhost的權(quán)限。
    • conf:用戶在哪些資源上擁有可配置權(quán)限(支持正則表達(dá)式)。
    • write:用戶在哪些資源上擁有寫權(quán)限(支持正則表達(dá)式)。
    • read:用戶在哪些資源上擁有讀權(quán)限(支持正則表達(dá)式)。
    [root@localhost rabbitmq]# rabbitmqctl set_permissions -p "/" qingjun ".*" ".*" ".*" Setting permissions for user "qingjun" in vhost "/" ...
  • 新賬戶qingjun登陸頁面成功。
  • 1.2 rabbitmqctl工具

    rabbitmqctl工具作用:

    • 是用來管理 RabbitMQ中間件的命令行工具,通過連接各個(gè)RabbitMQ節(jié)點(diǎn)來執(zhí)行所有操作。
    • 如果有節(jié)點(diǎn)沒有運(yùn)行,將顯示診斷信息: 不能到達(dá)或因不匹配的 Erlangcookie 而拒絕連接

    工具的標(biāo)準(zhǔn)語法:

    • rabbitmgctl [-n node] [-t timeout] [-q] {command) [command options…]
      • [ ]表示可選參數(shù),{ }表示必選參數(shù)。
      • [-n node]:默認(rèn)節(jié)點(diǎn)是“rabbit@hostname”,hostname是主機(jī)名稱。在一個(gè)名為“node.hidden.com’的主機(jī)上,RabbitMQ節(jié)點(diǎn)的名稱通常是 rabbit@node,可以在RABBITMQ NODENAME 參數(shù)在啟動(dòng)時(shí)設(shè)置。
      • [-q]:表示來啟用 quiet 模式,這樣可以屏蔽一些消息的輸出。默認(rèn)不開啟 quiet 模式。
      • [-t timeout]:表示操作超時(shí)時(shí)間 (秒為單位),只適用于“l(fā)ist xxx”類型的命令,默認(rèn)是無窮大。
    • 測試效果

    1.3 docker安裝


    1、先把前面二進(jìn)制安裝的rabbitmq服務(wù)關(guān)閉,防止端口沖突。

    [root@localhost Python-3.8.6]# rabbitmqctl shutdown Shutting down RabbitMQ node rabbit@localhost running at PID 8074 Waiting for PID 8074 to terminate RabbitMQ node rabbit@localhost running at PID 8074 successfully shut down

    2、docker安裝。指定容器名為myrabbit,新增一個(gè)賬戶qingjun1,密碼為123456,并開放一些端口。

    [root@localhost Python-3.8.6]# docker run -d --name myrabbit -e RABBITMQ_DEFAULT_USER=qingjun1 -e RABBITMQ_DEFAULT_PASS=123456 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:3-management[root@localhost Python-3.8.6]# docker ps|grep myrabbit 03fecc33c9e6 rabbitmq:3-management "docker-entrypoint.s…" 39 seconds ago Up 38 seconds 4369/tcp, 0.0.0.0:1883->1883/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 0.0.0.0:15672->15672/tcp, 0.0.0.0:25672->25672/tcp, 0.0.0.0:61613->61613/tcp, 15691-15692/tcp myrabbit

    3、登錄頁面

    二、rabbitmq基礎(chǔ)命令

    在上面給用戶授權(quán)時(shí),命令中有一個(gè)新出現(xiàn)的詞,vhost。那它是什么呢?為什么命令中會(huì)需要指向它,我們來簡單了解一下。

    • vhost的由來?
      • 當(dāng)需要有很多個(gè)用戶時(shí),但我們做不到給不同的用戶分配可以訪問哪些交換器、隊(duì)列的權(quán)限。比如exchangeA 和queueA 只能讓用戶A訪問,exchangeB 和queueB 只能讓用戶B訪問,想要達(dá)到這種需求,該怎么實(shí)現(xiàn)呢?
      • 可以給exchangeA 和queueA創(chuàng)建一個(gè)vhostA,為exchangeB 和queueB 創(chuàng)建vhostB,這樣就隔離開來了。
      • 所以說,vhost是rabbitmq分配權(quán)限的最小細(xì)粒度。vhost中包含許多的exchanges,queues,bingdings)。
    • vhost是什么?
      • 每一個(gè) RabbitMQ服務(wù)器都能創(chuàng)建虛擬的消息服務(wù)器,我們稱之為虛擬主機(jī)(virtual host),簡稱為 vhost。
      • 每一個(gè) vhost 本質(zhì)上是一個(gè)獨(dú)立的小型 RabbitMQ服務(wù)器,擁有自己獨(dú)立的隊(duì)列、交換器及綁定關(guān)系等,并且它擁有自己獨(dú)立的權(quán)限。
      • vhost 是 AMQP 概念的基礎(chǔ),客戶端在連接的時(shí)候必須制定一個(gè) vhost。
      • RabbitMQ默認(rèn)創(chuàng)建的 vhost 為“/”,如果不需要多個(gè) host 或者對(duì) vhost 的概念不是很理解,那么用這個(gè)默認(rèn)的vhost 也是非常合理的,使用默認(rèn)的用戶名 guest 和密碼 guest 就可以訪問它。
    • vhost的作用?
      • vhost 就像是虛擬機(jī)與物理服務(wù)器一樣,它們在各個(gè)實(shí)例間提供邏輯上的分離,為不同程序安全保密地運(yùn)行數(shù)據(jù),它既能將同一個(gè)RabbitMQ中的眾多客戶區(qū)分開,又可以避免隊(duì)列和交換器等命名沖突。
      • vhost 之間是絕對(duì)隔離的,無法將 vhost1 中的交換器與 host2 中的隊(duì)列進(jìn)行綁定,這樣既保證了安全性,又可以確保可移植性。
    • RabbitMQ中的授權(quán)是針對(duì)誰來說的?為什么?
      • 在 RabbitMO 中,權(quán)限控制則是以 vhost 為單位的。
      • 當(dāng)創(chuàng)建一個(gè)用戶時(shí),用戶通常會(huì)被指派給至少一個(gè) vhost,并且只能訪問被指派的 vhost 內(nèi)的隊(duì)列、交換器和綁定關(guān)系等。因此,RabbitMQ中的授予權(quán)限是指在 vhost 級(jí)別對(duì)用戶而言的權(quán)限授予。

    2.1 多租戶與權(quán)限類

    2.1.1 創(chuàng)建虛擬主機(jī)

    命令格式:rabbitmqctl add_vhost {vhost)

    # 創(chuàng)建一個(gè)名為wuhan的vhost。 [root@localhost rabbitmq]# rabbitmqctl add_vhost wuhan

    2.1.2 查看虛擬主機(jī)信息

    命令格式: rabbitmqctl list_vhosts [vhostinfoitem…]來羅列當(dāng)前vhost 的相關(guān)信息。目前 vhostinfoitem 的取值有 2個(gè)。

    • name: 表示 vhost 的名稱。
    • tracing: 表示是否使用了 RabbitMQ的 trace 功能。

    初識(shí)tracing插件:

    • 對(duì),你沒看錯(cuò),它是個(gè)插件,可以用命令手動(dòng)開啟關(guān)閉它,打開時(shí)在查詢主機(jī)狀態(tài)顯示為"ture",關(guān)閉時(shí)顯示狀態(tài)為“false”。
    • 開啟插件能跟蹤 RabbitMQ 中消息的流入流出情況,會(huì)對(duì)流入流出的消息進(jìn)行封裝,然后將封裝后的消息日志存入相應(yīng)的 trace 文件之中。
    • rabbitmq tracing 插件相當(dāng)于 Firehose 的 GUI 版本,至于Firehose是啥東東?什么作用?咱們后面會(huì)談到。
    #查看所有虛擬主機(jī)的名稱信息。 [root@localhost rabbitmq]# rabbitmqctl list_vhosts name Listing vhosts ... name wuhan /#查看所有虛擬主機(jī)的名稱、是否開啟tracing插件信息。 [root@localhost rabbitmq]# rabbitmqctl list_vhosts name tracing Listing vhosts ... name tracing wuhan false / false#給默認(rèn)創(chuàng)建的vhost開啟tracing插件。 [root@localhost rabbitmq]# rabbitmqctl trace_on Starting tracing for vhost "/" ... Trace enabled for vhost / [root@localhost rabbitmq]# rabbitmqctl list_vhosts name tracing Listing vhosts ... name tracing wuhan false / true

    2.1.3 刪除虛擬主機(jī)

    命令格式: rabbitmqctl delete_vhost {vhost},其中大括號(hào)里面的參數(shù)表示 vhost 的名稱。

    • 刪除一個(gè) vhost 同時(shí)也會(huì)刪除其下所有的隊(duì)列、交換器、綁定關(guān)系、用戶權(quán)限、參數(shù)和策略等信息。
    [root@localhost rabbitmq]# rabbitmqctl delete_vhost wuhan Deleting vhost "wuhan" ...

    2.1.4 給用戶授權(quán)

    看,又繞回來了,授權(quán)命令咱們再鞏固一遍。

    命令格式: rabbitmgctl set_permissions [-p vhost] {user]{conf}{write}{read}。

    • vhost:授予用戶訪問權(quán)限的 vhost 名稱,可以設(shè)置為默認(rèn)值,即 vhost 為“/”user: 可以訪問指定 vhost 的用戶名。
    • conf:一個(gè)用于匹配用戶在哪些資源上擁有可配置權(quán)限的正則表達(dá)式。可配置指的是隊(duì)列和交換器的創(chuàng)建及刪除之類的操作。
    • write:一個(gè)用于匹配用戶在哪些資源上擁有可寫權(quán)限的正則表達(dá)。可寫指的是發(fā)布消息。
    • read:一個(gè)用于匹配用戶在哪些資源上擁有可讀權(quán)限的正則表達(dá)式。可讀指與消息有關(guān)的操作,包括讀取消息及清空整個(gè)隊(duì)列等。
    #授予qingjun用戶可訪問虛擬主機(jī)wuhan,并在所有資源上都具備可配置、可寫及可讀的權(quán)限,也就是把qingjun用戶設(shè)置成最高級(jí)別的角色。 [root@localhost rabbitmq]# rabbitmqctl set_permissions -p wuhan qingjun ".*" ".*" ".*" Setting permissions for user "qingjun" in vhost "wuhan" ...#授予qingjun用戶可訪問虛擬主機(jī)beijing,在以“citms”開頭的資源上具備可配置權(quán)限,并在所有資源上擁有可寫、可讀的權(quán)限。 [root@localhost rabbitmq]# rabbitmqctl set_permissions -p beijing qingjun "^citms.*" ".*" ".*" Setting permissions for user "qingjun" in vhost "beijing" ...

    2.1.5 清除用戶權(quán)限

    命令格式:rabbitmgctl clear_permissions [-p vhost] {username}。

    • vhost:指定禁止用戶訪問的虛擬主機(jī)的名稱,默認(rèn)為“1”。
    • username:指定禁止訪問特定虛擬主機(jī)的用戶名稱。
    [root@localhost rabbitmq]# rabbitmqctl clear_permissions -p wuhan qingjun Clearing permissions for user "qingjun" in vhost "wuhan" ...

    2.1.6 查看權(quán)限

    • 以虛擬主機(jī)vhost視角來進(jìn)行查看。
    #查看wuhan、beijing兩個(gè)虛擬主機(jī)的權(quán)限信息。 [root@localhost rabbitmq]# rabbitmqctl list_permissions -p wuhan Listing permissions for vhost "wuhan" ...[root@localhost rabbitmq]# rabbitmqctl list_permissions -p beijing Listing permissions for vhost "beijing" ... user configure write read qingjun ^citms.* .* .*
    • 以用戶視角來進(jìn)行查看。
    #查看qingjun用戶的權(quán)限信息。 [root@localhost rabbitmq]# rabbitmqctl list_user_permissions qingjun Listing permissions for user "qingjun" ... vhost configure write read / .* .* .* beijing ^citms.* .* .*

    2.2 用戶管理類

    一個(gè)用戶可以跨越多個(gè) vhost 進(jìn)行授權(quán)。針對(duì)一至多個(gè) vhost,用戶可以被賦予不同級(jí)別的訪問權(quán)限,并使用標(biāo)準(zhǔn)的用戶名和密碼來認(rèn)證用戶。

    • 啥意思呢?用戶qingjun對(duì)wuhan虛擬主機(jī)、beijing虛擬主機(jī)的訪問權(quán)限可以單獨(dú)設(shè)置。

    2.2.1 創(chuàng)建用戶

    命令格式: rabbitmqctl add_user {username] [password}。

    • username:表示要?jiǎng)?chuàng)建的用戶名稱。
    • password:表示創(chuàng)建用戶登錄的密碼。
    #創(chuàng)建一個(gè)用戶名為lisi、密碼為999的用戶。 [root@localhost rabbitmq]# rabbitmqctl add_user lisi 999

    2.2.2 查看用戶

    命令格式:rabbitmqctl list_users

    • 每個(gè)結(jié)果行都包含用戶名稱,其后緊跟用戶的角色 (tags)。
    • 用戶的角色分為5個(gè)類型:
      • none: 無任何角色。新創(chuàng)建的用戶的角色默認(rèn)為 none。
      • management: 可以訪問 Web 管理頁面。Web 管理頁面在 5.3 節(jié)中會(huì)有詳細(xì)介紹
      • policymaker:包含 management 的所有權(quán)限,并且可以管理策略 (Policy) 和參數(shù)(Parameter)。詳細(xì)內(nèi)容可參考 6.3 節(jié)
      • monitoring: 包含 management 的所有權(quán)限,并且可以看到所有連接、信道及節(jié)點(diǎn)相關(guān)的信息。
      • administartor: 包含 monitoring 的所有權(quán)限,并且可以管理用戶、虛擬主機(jī)、權(quán)限、策略、參數(shù)等。administator 代表了最高的權(quán)限。

    2.2.3 刪除用戶

    命令格式:rabbitmgctl delete_user {username}

    • username:表示要?jiǎng)h除的用戶名稱。
    #查看用戶,zhansan存在。 [root@localhost rabbitmq]# rabbitmqctl list_users Listing users ... user tags qingjun [administrator] zhangsan [] lisi [] guest [administrator]#刪除用戶zhangsan。 [root@localhost rabbitmq]# rabbitmqctl delete_user zhangsan Deleting user "zhangsan" ...#查看用戶,zhangsan不存在。 [root@localhost rabbitmq]# rabbitmqctl list_users Listing users ... user tags qingjun [administrator] lisi [] guest [administrator]

    2.2.4 用戶指定角色

    命令格式: rabbitmqctl set_user_tags {username} {tag …}

    • username:表示需要設(shè)置角色的用戶名稱。
    • tag:參數(shù)用于設(shè)置 0 個(gè)、1個(gè)或者多個(gè)的角色,設(shè)置之后任何之前現(xiàn)有的身份都會(huì)被刪除。
    • 用戶的角色分為 5 種類型:
      • none: 無任何角色。新創(chuàng)建的用戶的角色默認(rèn)為 none。
      • management: 可以訪問 Web 管理頁面。
      • policymaker: 包含 management 的所有權(quán)限,并且可以管理策略 (Policy) 和參數(shù)(Parameter)。
      • monitoring: 包含 management 的所有權(quán)限,并且可以看到所有連接、信道及節(jié)點(diǎn)相關(guān)的信息。
      • administartor: 包含 monitoring 的所有權(quán)限,并且可以管理用戶、虛擬主機(jī)、權(quán)限、策略、參數(shù)等。administator 代表了最高的權(quán)限。
    1. 查看lisi用戶沒有任何角色。 [root@localhost rabbitmq]# rabbitmqctl list_users Listing users ... user tags qingjun [administrator] lisi [] guest [administrator]2. 給lisi用戶設(shè)置monitoring角色。 [root@localhost rabbitmq]# rabbitmqctl set_user_tags lisi monitoring Setting tags for user "lisi" to [monitoring] ...3. 查看lisi用戶有monitoring角色。 [root@localhost rabbitmq]# rabbitmqctl list_users -q user tags qingjun [administrator] lisi [monitoring] guest [administrator]4.給lisi用戶設(shè)置policymaker角色。 [root@localhost rabbitmq]# rabbitmqctl set_user_tags lisi policymaker -q5.查看lisi用戶有policymaker角色。 [root@localhost rabbitmq]# rabbitmqctl list_users -q user tags qingjun [administrator] lisi [policymaker] guest [administrator]5. 給lisi用戶設(shè)置無角色。 [root@localhost rabbitmq]# rabbitmqctl set_user_tags lisi -q6.查看lisi用戶沒有任何角色。 [root@localhost rabbitmq]# rabbitmqctl list_users -q user tags qingjun [administrator] lisi [] guest [administrator]7. 給lisi用戶設(shè)置兩個(gè)角色policymaker,management。 [root@localhost rabbitmq]# rabbitmqctl set_user_tags lisi policymaker,management Setting tags for user "lisi" to [policymaker,management] ...8.查看lisi用戶有policymaker,management兩個(gè)角色。 [root@localhost rabbitmq]# rabbitmqctl list_users -q user tags qingjun [administrator] lisi [policymaker,management] guest [administrator]

    2.2.5 更改用戶密碼

    命令格式:rabbitmqctl change_password {username) newpassword}

    • username:表示要變更密碼的用戶名稱。
    • newpassword:表示要變更的新的密碼。
    #更改用戶qingjun的密碼為citms@123 [root@localhost rabbitmq]# rabbitmqctl change_password qingjun citms@123 Changing password for user "qingjun" ...

    2.2.6 清除用戶密碼

    命令格式:rabbitmqctl clear_password {username}

    • username 表示要清除密碼的用戶名稱。
    #清除zhangsan用戶的密碼。 [root@localhost rabbitmq]# rabbitmqctl clear_password zhangsan Clearing password for user "zhangsan" ...

    2.2.7 密碼驗(yàn)證用戶

    命令格式:rabbitmqctl authenticate user {username] [password}

    • username:表示需要被驗(yàn)證的用戶名稱。
    • password:表示密碼。
    # 驗(yàn)證qingjun用戶的密碼為123456,驗(yàn)證失敗。 [root@localhost rabbitmq]# rabbitmqctl authenticate_user qingjun 123456 Authenticating user "qingjun" ... Error: Error: failed to authenticate user "qingjun" user 'qingjun' - invalid credentials# 驗(yàn)證qingjun用戶的密碼為citms@123,驗(yàn)證成功。 [root@localhost rabbitmq]# rabbitmqctl authenticate_user qingjun citms@123 Authenticating user "qingjun" ... Success

    2.3 插件使用類

    在前面安裝步驟我們還用到一個(gè)啟用插件命令,啟用了web端的管理頁面就可以不用敲命令這么麻煩,直接可以在web頁面上來管理虛擬主機(jī)、用戶、隊(duì)列、交換器、綁定關(guān)系、策略、各種參數(shù)等等。

    • RabbitMQ management 插件也是是由Erlang 語言編寫的,并且和 RabbitMQ 服務(wù)運(yùn)行在同一個(gè)Erlang 虛擬機(jī)中。
    • RabbitMQ management 插件可以提供 Web 管理界面用來管理如前面所述的虛擬主機(jī)、用戶等,也可以用來管理隊(duì)列、交換器、綁定關(guān)系、策略、參數(shù)等,還可以用來監(jiān)控 RabbitMO服務(wù)的狀態(tài)及一些數(shù)據(jù)統(tǒng)計(jì)類信息,可謂是功能強(qiáng)大,基本上能夠涵蓋所有 RabbitMQ管理的功能。
    • RabbitMO 提供了很多的插件,默認(rèn)存放在SRABBITMQ HOME/plugins 目錄下。從下圖可以看出非常多,其中就可以看到我們已經(jīng)提到過的tracing插件。
    • 插件的命令為rabbitmq-plugins,其命令格式為:rabbitmq-plugins [-n node] {command} [command options…]。

    2.3.1 啟動(dòng)插件

    命令格式:rabbitmg-plugins enable [plugin-name]

    [root@localhost ~]# rabbitmq-plugins enable rabbitmq_management

    2.3.2 關(guān)閉插件

    命令格式:rabbitmg-plugins disable [plugin-name]。

    [root@localhost ~]# rabbitmq-plugins disable rabbitmq_management

    2.3.3 查看插件使用情況

    命令格式:rabbitmq-plugins list

    • 標(biāo)記為[E*]的為顯式啟動(dòng),標(biāo)記[e*]為隱式啟動(dòng),
    • 如顯式啟動(dòng) rabbitmg management 插件會(huì)同時(shí)隱式啟動(dòng) rabbitmq_management_agent、rabbitmq_web_dispatch 2個(gè)插件。
    [root@localhost ~]# rabbitmq-plugins list

    • 開啟插件后,我們就可以在頁面上進(jìn)行操作,這個(gè)插件功能非常強(qiáng)大,后面再具體講各種細(xì)節(jié),這里先創(chuàng)建個(gè)用戶玩玩。
    • 創(chuàng)建完用戶在命令行也可以查找出來。


    2.4 應(yīng)用管理類

    2.4.1 啟動(dòng)rabbitmq服務(wù)

    2.4.1.1 前臺(tái)啟動(dòng)

    命令格式:rabbitmq-server start

    • 此種方式啟動(dòng)只能前臺(tái)運(yùn)行,并產(chǎn)生rabbitmq-server進(jìn)程,crl+C則退出關(guān)閉服務(wù)。
    [root@localhost ~]# rabbitmq-server start

    2.4.1.2 后臺(tái)啟動(dòng)

    命令格式:rabbitmg-server -detached

    • 這個(gè)命令會(huì)順帶啟動(dòng) Erlang 虛擬機(jī)和 RabbitMQ 應(yīng)用服務(wù)。
    • RabbitMQ 應(yīng)用服務(wù)啟動(dòng)的前提是 Erlang 虛擬機(jī)是運(yùn)轉(zhuǎn)正常的。
    [root@localhost ~]# rabbitmq-server -detached

    2.4.2 關(guān)閉rabbitmq服務(wù)

    • 關(guān)閉rabbitmq服務(wù)會(huì)將 Erlang 虛擬機(jī)一同關(guān)閉,而 rabbitmgctl stop_app 只關(guān)閉 RabbitMQ 應(yīng)用服務(wù)。
    • 停止erlang虛擬機(jī)和服務(wù)應(yīng)用的命令有兩個(gè)。
      • rabbitmqctl stop [pid_file]
      • rabbitmactl shutdown
      • 兩個(gè)命令用法不同,但效果是一樣的。

    2.4.2.1 指定pid文件阻塞進(jìn)程關(guān)閉(stop)

    命令格式:rabbitmqctl stop [pid_file]

    • 如果指定了 pid_file,會(huì)發(fā)生阻塞,需要等待指定進(jìn)程的結(jié)束。其中 pid file 是通過調(diào)用 rabbitmg-server 命令啟動(dòng)RabbitMO 服務(wù)時(shí)創(chuàng)建的,默認(rèn)情況下存放于 Mnesia 目錄中,可以通過 RABBITMO PID EILE這個(gè)環(huán)境變量來改變存放路徑。
    • 如果使用 rabbitmg-server -detach 命令來啟動(dòng) RabbitMQ服務(wù),則不會(huì)生成 pid file 文件。
    [root@localhost ~]# rabbitmqctl stop Stopping and halting node rabbit@localhost ...

    2.4.2.2 直接阻塞進(jìn)程關(guān)閉(shutdown)

    命令格式:rabbitmactl shutdown

    • 也是用于停止運(yùn)行 RabbitMQ 的 Erlang 虛擬機(jī)和 RabbitMQ 服務(wù)應(yīng)用。
    • 與rabbitmgctl stop 不同的是,它不需要指定 pid_file 就可以阻塞等待指定進(jìn)程的關(guān)閉,直到 Erlang 虛擬機(jī)進(jìn)程退出。
    • 如果 RabbitMQ沒有成功關(guān)閉,則會(huì)返回一個(gè)非零值。
    [root@localhost ~]# rabbitmqctl shutdown Shutting down RabbitMQ node rabbit@localhost running at PID 103017 Waiting for PID 103017 to terminate RabbitMQ node rabbit@localhost running at PID 103017 successfully shut down

    2.4.3 只停止應(yīng)用服務(wù)

    命令格式:rabbitmactl stop_app

    • 停止 RabbitMQ 服務(wù)應(yīng)用,但是 Erlang 虛擬機(jī)還是處于運(yùn)行狀態(tài)。
    • 該命令的執(zhí)行優(yōu)先于其他管理操作,也就是需要先停止服務(wù)應(yīng)用才能再去執(zhí)行其他的管理操作。比如:rabbitmactl reset。
    [root@localhost ~]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@localhost ...

    2.4.3 啟動(dòng)應(yīng)用服務(wù)

    命令格式:rabbitmqctl start_app

    • 常常用于執(zhí)行了其他管理操作之后,重新啟動(dòng)之前停止的 RabbitMQ應(yīng)用。比如 rabbitmqctl reset。
    [root@localhost ~]# rabbitmqctl start_app Starting node rabbit@localhost ...

    2.4.4 等待應(yīng)用服務(wù)啟動(dòng)

    命令格式:rabbitmqctl wait [pid_file]等待 RabbitMQ 應(yīng)用的啟動(dòng)。

    • 它會(huì)等到 pid file 的創(chuàng)建,然后等待 pid_file 中所代表的進(jìn)程啟動(dòng)。
    • 當(dāng)指定的進(jìn)程沒有啟動(dòng) RabbitMQ應(yīng)用而關(guān)閉時(shí)將會(huì)返回失敗。
    1. 先啟動(dòng)rabbitmq服務(wù),會(huì)生成pid文件,不要后臺(tái)啟動(dòng)。此時(shí)已經(jīng)相當(dāng)于執(zhí)行力rabbitmqctl start_app,應(yīng)用服務(wù)已是啟動(dòng)狀態(tài)。 [root@localhost profile.d]# rabbitmq-server start2. 指定pid文件地址,執(zhí)行成功。 [root@localhost mnesia]# rabbitmqctl wait /opt/backup/rabbitmq/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost.pid Waiting for pid file '/opt/backup/rabbitmq/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost.pid' to appear pid is 112409 Waiting for erlang distribution on node 'rabbit@localhost' while OS process '112409' is running Waiting for applications 'rabbit_and_plugins' to start on node 'rabbit@localhost' Applications 'rabbit_and_plugins' are running on node 'rabbit@localhost'

    2.4.5 先停止應(yīng)用再重置rabbitmq服務(wù)狀態(tài)

    命令格式:rabbitmqctl reset

    • 將 RabbitMO 節(jié)點(diǎn)重置還原到最初狀態(tài)。包括從原來所在的集群中刪除此節(jié)點(diǎn),從管理數(shù)據(jù)庫中刪除所有的配置數(shù)據(jù),如已配置的用戶、vhost 等,以及刪除所有的持久化消息。
    • 執(zhí)行rabbitmactl reset 命今前必須停止 RabbitMQ應(yīng)用,比如先執(zhí)行 rabbitmqctl stop_app)。
    [root@localhost ~]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@localhost ... [root@localhost ~]# rabbitmqctl reset Resetting node rabbit@localhost ...

    2.4.6 強(qiáng)制重置rabbitmq服務(wù)狀態(tài)

    命令格式:rabbitmactl force_reset

    • 強(qiáng)制將 RabbitMQ 節(jié)點(diǎn)重置還原到最初狀態(tài)。不同于 rabbitmqctl reset 命令,rabbitmgct force_reset 命令不論當(dāng)前管理數(shù)據(jù)庫的狀態(tài)和集群配置是什么,都會(huì)無條件地重置節(jié)點(diǎn)。
    • 所以它只能在數(shù)據(jù)庫或集群配置已損壞的情況下使用。
    • 執(zhí)行 rabbitmqctl force reset 命令前必須先停止 RabbitMO 應(yīng)用。
    [root@localhost ~]# rabbitmqctl stop_app Stopping rabbit application on node rabbit@localhost ... [root@localhost ~]# rabbitmqctl force_reset Forcefully resetting node rabbit@localhost ...

    2.4.7 輪換日志文件(已棄用)

    命令格式:rabbitmgctl rotate_logs {suffix}

    • 作用:指示 RabbitMQ 節(jié)點(diǎn)輪換日志文件。RabbitMQ 節(jié)點(diǎn)會(huì)將原來的日志文件中的內(nèi)容追加到“原始名稱+后綴”的日志文件中,然后再將新的日志內(nèi)容記錄到新創(chuàng)建的日志中(與原日志文件同名)。當(dāng)目標(biāo)文件不存在時(shí),會(huì)重新創(chuàng)建。 如果不指定后綴 suffix參數(shù),則日志文件只是重新打開而不會(huì)進(jìn)行輪換。
    • 現(xiàn)已棄用。

    2.4.8 生成HiPE編譯代碼.beam文件(已棄用)

    命令格式:rabbitmqctl hipe_compile {directory}

    • 作用:將部分 RabbitMQ代碼用 HiPE (HiPE 是指 High Performance Erlang,是 Erlang 版的JIT)編譯,并且將編譯后的.beam 文件 (beam 文件是 Erlang 編譯器生成的文件格式,可以直接加載到 Erlang 虛擬機(jī)中運(yùn)行的文件格式)保存到指定的文件目錄中。如果這個(gè)目錄不存在則會(huì)自行創(chuàng)建。如果這個(gè)目錄中原本有任何.beam 文件,則會(huì)在執(zhí)行編譯前被刪除。如果要使用預(yù)編譯的這些文件,則需要設(shè)置RABBITMO SERVER CODE PATH這個(gè)環(huán)境變量來指定 hipe compile調(diào)用的路徑。
    • 現(xiàn)已棄用。

    還有集群類命令,服務(wù)端類命令,還有rabbitmqadmin工具的使用,等集群安裝后再講解這些!

    總結(jié)

    以上是生活随笔為你收集整理的rabbitmq基础2——rabbitmq二进制安装和docker安装、基础命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。