RabbitMQ 消息中間件

一、消息中間件

一、簡介

消息中間件也能夠稱消息隊列,是指用高效可靠的消息傳遞機制進行與平臺無關的數據交流,並基於數據通訊來進行分佈式系統的集成。經過提供消息傳遞和消息隊列模型,能夠在分佈式環境下擴展進程的通訊。java

當下主流的消息中間件有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。其能在不一樣平臺之間進行通訊,經常使用來屏蔽各類平臺協議之間的特性,實現應用程序之間的協同。優勢在於可以在客戶端和服務器之間進行同步和異步的鏈接,而且在任什麼時候刻均可以將消息進行傳送和轉發,是分佈式系統中很是重要的組件,主要用來解決應用耦合、異步通訊、流量削峯等問題。 node

二、做用

一、消息中間件主要做用

  • 解耦
  • 冗餘(存儲)
  • 擴展性
  • 削峯
  • 可恢復性
  • 順序保證
  • 緩衝
  • 異步通訊

二、消息中間件的兩種模式

一、P2P模式linux

P2P模式包含三個角色:消息隊列(Queue)、發送者(Sender)、接收者(Receiver)。每一個消息都被髮送到一個特定的隊列,接收者從隊列中獲取消息。隊列保留着消息,直到它們被消費或超時。c++

P2P的特色:git

  • 每一個消息只有一個消費者(Consumer),即一旦被消費,消息就再也不在消息隊列中
  • 發送者和接收者之間在時間上沒有依賴性,也就是說當發送者發送了消息以後,無論接收者有沒有正在運行它不會影響到消息被髮送到隊列
  • 接收者在成功接收消息以後需向隊列應答成功
  • 若是但願發送的每一個消息都會被成功處理的話,那麼須要P2P模

二、Pub/Sub模式github

Pub/Sub模式包含三個角色:主題(Topic)、發佈者(Publisher)、訂閱者(Subscriber) 。多個發佈者將消息發送到Topic,系統將這些消息傳遞給多個訂閱者。web

Pub/Sub的特色:正則表達式

  • 每一個消息能夠有多個消費者
  • 發佈者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須建立一個訂閱者以後,才能消費發佈者的消息
  • 爲了消費消息,訂閱者必須保持運行的狀態
  • 若是但願發送的消息能夠不被作任何處理、或者只被一個消息者處理、或者能夠被多個消費者處理的話,那麼能夠採用Pub/Sub模型

三、經常使用中間件介紹與對比

一、Kafkaredis

Kafka是LinkedIn開源的分佈式發佈-訂閱消息系統,目前歸屬於Apache頂級項目。Kafka主要特色是基於Pull的模式來處理消息消費,追求高吞吐量,一開始的目的就是用於日誌收集和傳輸。0.8版本開始支持複製,不支持事務,對消息的重複、丟失、錯誤沒有嚴格要求,適合產生大量數據的互聯網服務的數據收集業務。vim

二、RabbitMQ

RabbitMQ是使用Erlang語言開發的開源消息隊列系統,基於AMQP協議來實現。AMQP的主要特徵是面向消息、隊列、路由(包括點對點和發佈/訂閱)、可靠性、安全。AMQP協議更多用在企業系統內對數據一致性、穩定性和可靠性要求很高的場景,對性能和吞吐量的要求還在其次。

三、RocketMQ

RocketMQ是阿里開源的消息中間件,它是純Java開發,具備高吞吐量、高可用性、適合大規模分佈式系統應用的特色。RocketMQ思路起源於Kafka,但並非Kafka的一個Copy,它對消息的可靠傳輸及事務性作了優化,目前在阿里集團被普遍應用於交易、充值、流計算、消息推送、日誌流式處理、binglog分發等場景。

RabbitMQ比Kafka可靠,Kafka更適合IO高吞吐的處理,通常應用在大數據日誌處理或對實時性(少許延遲),可靠性(少許丟數據)要求稍低的場景使用,好比ELK日誌收集。

二、RabbitMQ 詳解

一、RabbitMQ 介紹

RabbitMQ是一個在AMQP(Advanced Message Queuing Protocol )基礎上實現的,可複用的企業消息系統。它能夠用於大型軟件系統各個模塊之間的高效通訊,支持高併發,支持可擴展。它支持多種客戶端如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX,持久化,用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。

RabbitMQ是使用Erlang編寫的一個開源的消息隊列,自己支持不少的協議:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它變的很是重量級,更適合於企業級的開發。它同時實現了一個Broker構架,這意味着消息在發送給客戶端時先在中心隊列排隊,對路由(Routing)、負載均衡(Load balance)或者數據持久化都有很好的支持。

二、RabbitMQ 特色

  • 可靠性
  • 靈活的路由
  • 擴展性
  • 高可用性
  • 多種協議
  • 多語言客戶端
  • 管理界面
  • 插件機制

三、AMQP 介紹

AMQP,即Advanced Message Queuing Protocol,一個提供統一消息服務的應用層標準高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。基於此協議的客戶端與消息中間件可傳遞消息,並不受客戶端/中間件不一樣產品,不一樣的開發語言等條件的限制。

四、什麼和是消息隊列

MQ 全稱爲Message Queue, 消息隊列。是一種應用程序對應用程序的通訊方法。應用程序經過讀寫出入隊列的消息(針對應用程序的數據)來通訊,而無需專用鏈接來連接它們。

消息傳遞指的是程序之間經過在消息中發送數據進行通訊,而不是經過直接調用彼此來通訊。隊列的使用除去了接收和發送應用程序同時執行的要求。

在項目中,將一些無需即時返回且耗時的操做提取出來,進行了異步處理,而這種異步處理的方式大大的節省了服務器的請求響應時間,從而提升了系統的吞吐量。

消息隊列的使用場景是怎樣的?

五、RabbitMQ 應用場景

對於一個大型的軟件系統來講,它會有不少的組件或者說模塊或者說子系統或者(subsystem or Component or submodule)。那麼這些模塊的如何通訊?這和傳統的IPC有很大的區別。傳統的IPC不少都是在單一系統上的,模塊耦合性很大,不適合擴展(Scalability);若是使用socket那麼不一樣的模塊的確能夠部署到不一樣的機器上,可是仍是有不少問題須要解決。好比:

1)信息的發送者和接收者如何維持這個鏈接,若是一方的鏈接中斷,這期間的數據如何防止丟失?

2)如何下降發送者和接收者的耦合度?

3)如何讓Priority高的接收者先接到數據?

4)如何作到load balance?有效均衡接收者的負載?

5)如何有效的將數據發送到相關的接收者?也就是說將接收者subscribe 不一樣的數據,如何作有效的filter。

6)如何作到可擴展,甚至將這個通訊模塊發到cluster上?

7)如何保證接收者接收到了完整,正確的數據?

AMDQ協議解決了以上的問題,而RabbitMQ實現了AMQP。

六、RabbitMQ 概念介紹

  • Broker:簡單來講就是消息隊列服務器實體。
  • Exchange:消息交換機,它指定消息按什麼規則,路由到哪一個隊列。
  • Queue:消息隊列載體,每一個消息都會被投入到一個或多個隊列。
  • Binding:綁定,它的做用就是把exchange和queue按照路由規則綁定起來。
  • Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。
  • vhost:虛擬主機,一個broker裏能夠開設多個vhost,用做不一樣用戶的權限分離。
  • producer:消息生產者,就是投遞消息的程序。
  • consumer:消息消費者,就是接受消息的程序。
  • channel:消息通道,在客戶端的每一個鏈接裏,可創建多個channel,每一個channel表明一個會話任務。

RabbitMQ從總體上來看是一個典型的生產者消費者模型,主要負責接收、存儲和轉發消息

RabbitMQ 消息中間件

七、RabbitMQ 使用流程

AMQP模型中,消息在producer中產生,發送到MQ的exchange上,exchange根據配置的路由方式發到相應的Queue上,Queue又將消息發送給consumer,消息從queue到consumer有push和pull兩種方式。 消息隊列的使用過程大概以下:

  1. 客戶端鏈接到消息隊列服務器,打開一個channel。
  2. 客戶端聲明一個exchange,並設置相關屬性。
  3. 客戶端聲明一個queue,並設置相關屬性。
  4. 客戶端使用routing key,在exchange和queue之間創建好綁定關係。
  5. 客戶端投遞消息到exchange。

exchange接收到消息後,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列裏。 exchange也有幾個類型,徹底根據key進行投遞的叫作Direct交換機,例如,綁定時設置了routing key爲」abc」,那麼客戶端提交的消息,只有設置了key爲」abc」的纔會投遞到隊列。

RabbitMQ 消息中間件

三、RabbitMQ 單機安裝部署

一、安裝 erlang
添加yum支持

cd /usr/local/src/
mkdir rabbitmq
cd rabbitmq
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -ivh erlang-solutions-1.0-1.noarch.rpm
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
yum install erlang

二、安裝RabbitMQ

一、用 yum 安裝 RabbitMQ

rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
#this example assumes the CentOS 7 version of the package
yum install rabbitmq-server-3.7.13-1.el7.noarch.rpm
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
# this example assumes the CentOS 7 version of the package
yum install rabbitmq-server-3.7.13-1.el7.noarch.rpm

二、用 rpm 手動安裝

下載:

wget  https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.13/rabbitmq-server-3.7.13-1.el7.noarch.rpm

上傳rabbitmq-server-3.7.13-1.el7.noarch.rpm文件到/usr/local/src/rabbitmq/

安裝:

rpm -ivh rabbitmq-server-3.7.13-1.el7.noarch.rpm

經常使用命令

service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server restart 
chkconfig rabbitmq-server on  //設置開機自啓

設置配置文件:

cd /etc/rabbitmq
cp /usr/share/doc/rabbitmq-server-3.7.13/rabbitmq.config.example /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config

設置用戶遠程訪問:

vim /etc/rabbitmq/rabbitmq.config

找到{}loopack_users , [] }把","去掉
開啓web界面管理工具

rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart

防火牆設置

/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
/etc/rc.d/init.d/iptables save

五、RabbitMQ經常使用的命令

一、基本命令

啓動監控管理器:rabbitmq-plugins enable rabbitmq_management

關閉監控管理器:rabbitmq-plugins disable rabbitmq_management

啓動rabbitmq:rabbitmq-service start

關閉rabbitmq:rabbitmq-service stop

查看全部的隊列:rabbitmqctl list_queues

清除全部的隊列:rabbitmqctl reset

關閉應用:rabbitmqctl stop_app

啓動應用:rabbitmqctl start_app

二、用戶和權限設置

添加用戶:rabbitmqctl add_user username password

分配角色:rabbitmqctl set_user_tags username administrator

新增虛擬主機:rabbitmqctl add_vhost vhost_name

將新虛擬主機受權給新用戶:rabbitmqctl set_permissions -p vhost_name username 「.」 「.」 「.」(後面三個」」表明用戶擁有配置、寫、讀所有權限)

三、角色說明

  • 超級管理員(administrator)
    可登錄管理控制檯,可查看全部的信息,而且能夠對用戶,策略(policy)進行操做。
  • 監控者(monitoring)
    可登錄管理控制檯,同時能夠查看rabbitmq節點的相關信息(進程數,內存使用狀況,磁盤使用狀況等)
  • 策略制定者(policymaker)
    可登錄管理控制檯, 同時能夠對policy進行管理。但沒法查看節點的相關信息(上圖紅框標識的部分)。
  • 普通管理者(management)
    僅可登錄管理控制檯,沒法看到節點信息,也沒法對策略進行管理。
  • 其餘
    沒法登錄管理控制檯,一般就是普通的生產者和消費者。

    四、RabbitMQ 集羣部署及配置

    署 RabbitMQ Cluster

    一、環境要求

一、全部節點須要再同一個局域網內;

二、全部節點須要有相同的 erlang cookie,不然不能正常通訊,爲了實現cookie內容一致,採用scp的方式進行。

三、準備三臺虛擬機,配置相同

rabbitmq01 192.168.101.11

rabbitmq02 192.168.101.12

rabbitmq03 192.168.101.13

操做系統:centos7.5

二、部署過程

一、全部節點配置/etc/hosts

node1 192.168.101.11

node2 192.168.101.12

node3 192.168.101.13

二、全部節點安裝 erLang 和 rabbitmq

一、安裝erlang

安裝依賴包

yum install -y *epel* gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel

編譯安裝

wget http://erlang.org/download/otp_src_21.3.tar.gz
tar -zxvf otp_src_21.3.tar.gz
cd otp_src_21.3
./configure --prefix=/usr/local/bin/erlang --without-javac
make && make install
echo "export PATH=$PATH:/usr/local/bin/erlang/bin:/usr/local/bin/rabbitmq_server-3.6.15/sbin" >> /etc/profile
source /etc/profile

出現 erl 命令則說明安裝成功;

安裝rabbitmq

編譯安裝

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz
yum install -y xz
xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.6.15.tar -C /usr/local/bin/
echo "export PATH=$PATH:/usr/local/bin/erlang/bin:/usr/local/bin/rabbitmq_server-3.6.15/sbin" >> /etc/profile
source /etc/profile

導入 rabbitmq 的管理界面

rabbitmq-plugins enable rabbitmq_management

**設置 erlang

找到erlang cookie文件的位置,官方在介紹集羣的文檔中提到過.erlang.cookie 通常會存在這兩個地址:第一個是home/.erlang.cookie;第二個地方就是/var/lib/rabbitmq/.erlang.cookie。若是咱們使用解壓縮方式安裝部署的rabbitmq,那麼這個文件會在{home}目錄下,也就是$home/.erlang.cookie。若是咱們使用rpm等安裝包方式進行安裝的,那麼這個文件會在/var/lib/rabbitmq目錄下。

這裏將 node1 的該文件複製到 node二、node3,注意這個文件的權限是 400(默認便是400),所以採用scp的方式只拷貝內容便可;

能夠經過cat $home/.erlang.cookie來查看三臺機器的cookie是否一致,設置erlang的目的是要保證集羣內的cookie內容一致。

**使用-detached參數運行各節點

rabbitmqctl stop

rabbitmq-server -detached

而後能夠經過 rabbitmqctl cluster_status查看節點狀態。

注意:要先拷貝cookie到另外兩臺機器上,保證三臺機器上的cookie是一致的,而後再啓動服務。

因爲guest這個用戶,只能在本地訪問,因此咱們要新增一個用戶並賦予權限:

添加用戶並設置密碼:

rabbitmqctl add_user  admin 123456

添加權限(使admin用戶對虛擬主機「/」 具備全部權限):

rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

修改用戶角色(加入administrator用戶組)

rabbitmqctl set_user_tags admin administrator

而後就能夠遠程訪問了,而後可直接配置用戶權限等信息。到此,就能夠經過http://ip:15672 使用admin 123456 進行登錄了。

到這裏的話,每一個節點是做爲單獨的一臺RabbitMQ存在的,也能夠正常提供服務了

**組成集羣

rabbitmq-server 啓動時,會一塊兒啓動節點和應用,它預先設置RabbitMQ應用爲standalone模式。要將一個節點加入到現有的集羣中,你須要中止這個應用,並將節點設置爲原始狀態。若是使用./rabbitmqctl stop,應用和節點都將被關閉。因此使用rabbitmqctl stop_app僅僅關閉應用。

一、將 node二、node3與 node1 組成集羣,這裏以node2爲例

node2# rabbitmqctl stop_app      
    node2# rabbitmqctl join_cluster rabbit@node1               ####這裏集羣的名字必定不要寫錯了
    node2# rabbitmqctl start_app

二、將node3重複上述操做,也加入node1的集羣。

node3# rabbitmqctl stop_app      
node3# rabbitmqctl join_cluster rabbit@node1               ####這裏集羣的名字必定不要寫錯了
node3# rabbitmqctl start_app

則此時 node2 與 node3 也會自動創建鏈接,集羣配置完畢;

#使用內存節點加入集羣
    node2 # rabbitmqctl join_cluster --ram rabbit@node1

三、在 RabbitMQ 集羣任意節點上執行 rabbitmqctl cluster_status來查看是否集羣配置成功。

node3# rabbitmqctl cluster_status
Cluster status of node rabbit@node3 ...
[{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]},
 {running_nodes,[rabbit@node1,rabbit@node2,rabbit@node3]},
 {cluster_name,<"rabbit@node1">},      #集羣的名稱默認爲 rabbit@node1
 {partitions,[]},
 {alarms,[{rabbit@node1,[]},{rabbit@node2,[]},{rabbit@node3,[]}]}]

** 設置鏡像隊列策略

在任意一個節點上執行以下操做(這裏在node1上執行)

首先,在web界面,登錄後,點擊「Admin--Virtual Hosts(頁面右側)」,在打開的頁面上的下方的「Add a new virtual host」處增長一個虛擬主機,同時給用戶「admin」和「guest」均加上權限(在頁面直接設置、點點點便可);

而後,在linux中執行以下命令

rabbitmqctl set_policy -p coresystem  ha-all "^" '{"ha-mode":"all"}'

"coresystem" vhost名稱, "^"匹配全部的隊列, ha-all 策略名稱爲ha-all, '{"ha-mode":"all"}' 策略模式爲 all 即複製到全部節點,包含新增節點。

則此時鏡像隊列設置成功。(這裏的虛擬主機coresystem是代碼中須要用到的虛擬主機,虛擬主機的做用是作一個消息的隔離,本質上可認爲是一個rabbitmq-server,是否增長虛擬主機,增長几個,這是由開發中的業務決定,即有哪幾類服務,哪些服務用哪個虛擬主機,這是一個規劃)。
**鏡像隊列策略設置說明

rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]

    -p Vhost: 可選參數,針對指定vhost下的queue進行設置
    Name: policy的名稱
    Pattern: queue的匹配模式(正則表達式)
    Definition:鏡像定義,包括三個部分ha-mode, ha-params, ha-sync-mode
        ha-mode:指明鏡像隊列的模式,有效值爲 all/exactly/nodes
            all:表示在集羣中全部的節點上進行鏡像
            exactly:表示在指定個數的節點上進行鏡像,節點的個數由ha-params指定
            nodes:表示在指定的節點上進行鏡像,節點名稱經過ha-params指定
        ha-params:ha-mode模式須要用到的參數
        ha-sync-mode:進行隊列中消息的同步方式,有效值爲automatic和manual
    priority:可選參數,policy的優先級

將全部隊列設置爲鏡像隊列,即隊列會被複制到各個節點,各個節點狀態保持一直。完成這 6 個步驟後,RabbitMQ 高可用集羣搭建完成,最後一個步驟就是搭建均衡器。
**安裝並配置負載均衡器HA

注意:若是使用阿里雲,可使用阿里雲的內網slb來實現負載均衡,不用本身搭建HA。

一、在192.168.101.11安裝HAProxy

yum -y install HAProxy

二、修改 /etc/haproxy/haproxy.cfg

vim /etc/haproxy/haproxy.cfg
    global 

        log         127.0.0.1 local2

        chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy.pid
        maxconn     4000
        user        haproxy
        group       haproxy
        daemon

        stats socket /var/lib/haproxy/stats

    defaults 
           log        global 
           mode       tcp 
           option     tcplog 
           option     dontlognull 
           retries    3 
           option redispatch 
           maxconn 2000 
           contimeout      5s 
           clitimeout      120s 
           srvtimeout      120s 

    listen rabbitmq_cluster 192.168.101.11:5670
           mode      tcp 
           balance roundrobin 
           server rabbit1  192.168.101.11:5672 check inter 5000 rise 2 fall 2 
           server rabbit2  192.168.101.12:5672 check inter 5000 rise 2 fall 2

三、重啓HAProxy

service haproxy restart

登陸瀏覽器輸入地址http://192.168.101.11:8100/rabbitmqstats查看HAProxy的狀態

3、常見問題

常見錯誤:

一、使用 rabbitmq-server -detached命令啓動rabbitmq時,出現如下提示Warning: PID file not written; -detached was passed,此時使用rabbitmqctl status提示服務已啓動,可知此問題不用解決。

二、因爲更改hostname文件,在每次rabbitmqctl stop或者rabbitmqctl cluster_status等,只要是rabbitmq的命令就報錯,提示大概以下

Cluster status of node rabbit@web2 ...
    Error: unable to connect to node rabbit@web2: nodedown

    DIAGNOSTICS
    ===========

    attempted to contact: [rabbit@web2]

    rabbit@web2:
      * connected to epmd (port 4369) on web2
      * epmd reports node 'rabbit' running on port 25672
      * TCP connection succeeded but Erlang distribution failed

      * Hostname mismatch: node "rabbit@mq2" believes its host is different. Please ensure that hostnames resolve the same way locally and on "rabbit@mq2"

    current node details:
    - node name: 'rabbitmq-cli-11@web2'
    - home dir: /root
    - cookie hash: SGwxMdJ3PjEXG1asIEFpBg==

此時先ps aux | grep mq,而後kill -9 該進程,而後再rabbitmq-server -detached便可解決。(即先強殺,再從新啓動)

三、使用rabbitmqctl stop,rabbitmq-server -detached從新啓動後,原先添加的用戶admin、虛擬主機coresystem等均丟失,還須要從新添加。

採用腳本啓動,在腳本中寫好啓動好須要加載的各配置項(建立admin用戶並受權,建立虛擬主機並受權,配置鏡像隊列)。

四、命令

rabbitmqctl stop_app        #僅關閉應用,不關閉節點
    rabbitmqctl start_app       #開啓應用
    rabbitmq--server -detached  #啓動節點和應用
    rabbitmqctl stop            #關閉節點和應用

四、經常使用命令:

Rabbitmq服務器的主要經過rabbitmqctl和rabbimq-plugins兩個工具來管理,如下是一些經常使用功能。

一、 服務器啓動與關閉

啓動: rabbitmq-server –detached
      關閉: rabbitmqctl stop
      若單機有多個實例,則在rabbitmqctl後加 –n 指定名稱

二、插件管理

開啓某個插件:rabbitmq-plugins enable  xxx
      關閉某個插件:rabbitmq-plugins disable xxx
      注意:重啓服務器後生效。

三、virtual_host管理

新建virtual_host:rabbitmqctl add_vhost  xxx
      撤銷virtual_host:rabbitmqctl  delete_vhost xxx

四、用戶管理

新建用戶:rabbitmqctl add_user xxxpwd
      刪除用戶: rabbitmqctl delete_user xxx
      查看用戶:rabbitmqctl list_users
      改密碼: rabbimqctl change_password {username} {newpassword}
      設置用戶角色:rabbitmqctlset_user_tags {username} {tag ...}
              Tag能夠爲 administrator,monitoring, management

五、 權限管理

權限設置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
      Vhostpath: Vhost路徑
      user: 用戶名
      Conf: 一個正則表達式match哪些配置資源可以被該用戶訪問。
      Write: 一個正則表達式match哪些配置資源可以被該用戶讀。
      Read: 一個正則表達式match哪些配置資源可以被該用戶訪問。

六、獲取服務器狀態信息

服務器狀態:rabbitmqctl status     ##其中可查看rabbitmq的版本信息

七、獲取集羣狀態信息

rabbitmqctl cluster_status
相關文章
相關標籤/搜索