RabbitMQ簡介及安裝
RabbitMQ介紹
1.RabbitMQ簡介
官網:https://www.rabbitmq.com
RabbitMQ是一款在全球範圍內使用非常廣泛的開源訊息佇列中介軟體。它輕量級、易部署、並支援多種協議。它基於Erlang開發,天生擁有高併發的能力。
RabbitMQ相關術語
生產者----產生訊息的程式或服務
消費者----接收訊息的程式或服務
佇列----RabbitMQ是訊息佇列中介軟體,而真正儲存訊息資料的就是佇列,佇列可以有很多。
交換器----類似於網路裝置交換機,它可以根據不同的關鍵字,將訊息傳送到不同的佇列。
虛擬主機:
虛擬主機類似於Apache的虛擬主機,如果沒有虛擬主機,當RabbitMQ中的資料越來越龐大,佇列越來越多,隨之而來的是令人頭痛的管理問題,比如佇列、交換器命名衝突,它們相互影響等等。虛擬主機能夠解決這些問題,而不需要我們部署多個RabbitMQ來負責不同的業務。
虛擬主機提供了資源的邏輯分組和分隔,每一個虛擬主機本質上是mini版的RabbitMQ伺服器,他們有用自己的連線、佇列、繫結、交換器,更重要的是有用自己的許可權機制,這有點類似伺服器和執行在伺服器上的虛擬機器一樣。
2.Centos7上安裝RabbitMQ(單機)
官方文件: https://www.rabbitmq.com/install-rpm.html
2.1 安裝erlang
[root@linux-01 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
Detected operating system as centos/7.
Checking for curl...
Detected curl...
Downloading repository file: https://packagecloud.io/install/repositories/rabbitmq/erlang/config_file.repo?os=centos&dist=7&source=script
done.
Installing pygpgme to verify GPG signatures...
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 3.7 kB 00:00:00
* base: mirrors.aliyun.com
* epel: mirrors.bfsu.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; 拒絕連線"
正在嘗試其它映象。
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; 未知的錯誤"
正在嘗試其它映象。
base | 3.6 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
jenkins | 2.9 kB 00:00:00
rabbitmq_erlang-source/signature | 819 B 00:00:00
從 https://packagecloud.io/rabbitmq/erlang/gpgkey 檢索金鑰
匯入 GPG key 0xDF309A0B:
使用者ID : "https://packagecloud.io/rabbitmq/erlang (https://packagecloud.io/docs#gpg_signing) <support@packagecloud.io>"
指紋 : 2ebd e413 d3ce 5d35 bcd1 5b7c 71c6 3471 df30 9a0b
來自 : https://packagecloud.io/rabbitmq/erlang/gpgkey
rabbitmq_erlang-source/signature | 951 B 00:00:00 !!!
updates | 2.9 kB 00:00:00
(1/5): jenkins/primary_db | 35 kB 00:00:01
(2/5): updates/7/x86_64/primary_db | 4.5 MB 00:00:06
(3/5): epel/x86_64/group_gz | 95 kB 00:00:19
(4/5): epel/x86_64/updateinfo | 1.0 MB 00:03:20
epel/x86_64/primary_db FAILED 49% [======================================- ] 40 B/s | 6.1 MB 46:27:30 ETA
https://mirror.yer.az/fedora-epel/7/x86_64/repodata/f33d3153c04f90e1f73f7b160861324a276a8b4dac0fdf2b0b5d125a7bdda55e-primary.sqlite.bz2: [Errno 12] Timeout on https://mirror.yer.az/fedora-epel/7/x86_64/repodata/f33d3153c04f90e1f73f7b160861324a276a8b4dac0fdf2b0b5d125a7bdda55e-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
正在嘗試其它映象。
epel/x86_64/primary_db FAILED 84% [==================================================================- ] 2.3 B/s | 11 MB 247:11:05 ETA
https://download.nus.edu.sg/mirror/epel/7/x86_64/repodata/f33d3153c04f90e1f73f7b160861324a276a8b4dac0fdf2b0b5d125a7bdda55e-primary.sqlite.bz2: [Errno 12] Timeout on https://download.nus.edu.sg/mirror/epel/7/x86_64/repodata/f33d3153c04f90e1f73f7b160861324a276a8b4dac0fdf2b0b5d125a7bdda55e-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
正在嘗試其它映象。
epel/x86_64/primary_db FAILED
http://epel.mirror.angkasa.id/pub/epel/7/x86_64/repodata/f33d3153c04f90e1f73f7b160861324a276a8b4dac0fdf2b0b5d125a7bdda55e-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to epel.mirror.angkasa.id:80;Connection refused"
正在嘗試其它映象。
(5/5): epel/x86_64/primary_db | 6.9 MB 00:00:08
rabbitmq_erlang-source/primary | 175 B 00:00:04
軟體包 pygpgme-0.3-9.el7.x86_64 已安裝並且是最新版本
無須任何處理
Installing yum-utils...
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.bfsu.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
rabbitmq_erlang-source/signature | 819 B 00:00:00
rabbitmq_erlang-source/signature | 951 B 00:00:00 !!!
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 yum-utils.noarch.0.1.1.31-54.el7_8 將被 安裝
--> 正在處理依賴關係 python-kitchen,它被軟體包 yum-utils-1.1.31-54.el7_8.noarch 需要
--> 正在檢查事務
---> 軟體包 python-kitchen.noarch.0.1.1.1-5.el7 將被 安裝
--> 正在處理依賴關係 python-chardet,它被軟體包 python-kitchen-1.1.1-5.el7.noarch 需要
--> 正在檢查事務
---> 軟體包 python-chardet.noarch.0.2.2.1-3.el7 將被 安裝
--> 解決依賴關係完成
依賴關係解決
================================================================================================================================================================================================================
Package 架構 版本 源 大小
================================================================================================================================================================================================================
正在安裝:
yum-utils noarch 1.1.31-54.el7_8 updates 122 k
為依賴而安裝:
python-chardet noarch 2.2.1-3.el7 base 227 k
python-kitchen noarch 1.1.1-5.el7 base 267 k
事務概要
================================================================================================================================================================================================================
安裝 1 軟體包 (+2 依賴軟體包)
總下載量:616 k
安裝大小:2.8 M
Downloading packages:
(1/3): python-chardet-2.2.1-3.el7.noarch.rpm | 227 kB 00:00:00
(2/3): python-kitchen-1.1.1-5.el7.noarch.rpm | 267 kB 00:00:00
(3/3): yum-utils-1.1.31-54.el7_8.noarch.rpm | 122 kB 00:00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
總計 812 kB/s | 616 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝 : python-chardet-2.2.1-3.el7.noarch 1/3
正在安裝 : python-kitchen-1.1.1-5.el7.noarch 2/3
正在安裝 : yum-utils-1.1.31-54.el7_8.noarch 3/3
驗證中 : python-kitchen-1.1.1-5.el7.noarch 1/3
驗證中 : yum-utils-1.1.31-54.el7_8.noarch 2/3
驗證中 : python-chardet-2.2.1-3.el7.noarch 3/3
已安裝:
yum-utils.noarch 0:1.1.31-54.el7_8
作為依賴被安裝:
python-chardet.noarch 0:2.2.1-3.el7 python-kitchen.noarch 0:1.1.1-5.el7
完畢!
Generating yum cache for rabbitmq_erlang...
匯入 GPG key 0xDF309A0B:
使用者ID : "https://packagecloud.io/rabbitmq/erlang (https://packagecloud.io/docs#gpg_signing) <support@packagecloud.io>"
指紋 : 2ebd e413 d3ce 5d35 bcd1 5b7c 71c6 3471 df30 9a0b
來自 : https://packagecloud.io/rabbitmq/erlang/gpgkey
Generating yum cache for rabbitmq_erlang-source...
The repository is setup! You can now install packages.
## 檢視rabbitmq_erlang.repo中的內容資訊
[root@linux-01 ~]# cat /etc/yum.repos.d/rabbitmq_erlang.repo
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[root@linux-01 ~]# yum install -y erlang
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: my.mirrors.thegigabit.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
https://packagecloud.io/rabbitmq/erlang/el/7/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://d28dx6y1hfq314.cloudfront.net/828/1039/el/7/x86_64/repodata/b52156a6708c0cfc469ea0e158e7bb8917beb3ce5f4bbca173a718f7d9d99373-repomd.xml?t=1605536717_077a01b9c029cb1020d6222229967e2ac128e797: (28, 'Operation timed out after 30745 milliseconds with 0 out of 0 bytes received')
正在嘗試其它映象。
rabbitmq_erlang/x86_64/signature | 833 B 00:00:00
rabbitmq_erlang/x86_64/signature | 1.0 kB 00:00:00 !!!
rabbitmq_erlang-source/signature | 819 B 00:00:00
rabbitmq_erlang-source/signature | 951 B 00:00:00 !!!
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 erlang.x86_64.0.23.1.2-1.el7 將被 安裝
--> 解決依賴關係完成
依賴關係解決
================================================================================================================================================================================================================
Package 架構 版本 源 大小
================================================================================================================================================================================================================
正在安裝:
erlang x86_64 23.1.2-1.el7 rabbitmq_erlang 19 M
事務概要
================================================================================================================================================================================================================
安裝 1 軟體包
總下載量:19 M
安裝大小:34 M
Downloading packages:
erlang-23.1.2-1.el7.x86_64.rpm | 19 MB 00:19:40
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝 : erlang-23.1.2-1.el7.x86_64 1/1
驗證中 : erlang-23.1.2-1.el7.x86_64 1/1
已安裝:
erlang.x86_64 0:23.1.2-1.el7
完畢!
2.2 安裝rabbitmq
[root@linux-01 ~]# rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
[root@linux-01 ~]# rpm --import https://packagecloud.io/gpg.key
[root@linux-01 ~]# rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
## 新增rabbitmsq的yum源
[root@linux-01 ~]# vi /etc/yum.repos.d/rabbitmq.repo
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1
[root@linux-01 ~]# yum install -y rabbitmq-server
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.bfsu.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
bintray-rabbitmq-server | 1.3 kB 00:00:00
rabbitmq_erlang/x86_64/signature | 833 B 00:00:00
rabbitmq_erlang/x86_64/signature | 1.0 kB 00:00:00 !!!
rabbitmq_erlang-source/signature | 819 B 00:00:00
rabbitmq_erlang-source/signature | 951 B 00:00:00 !!!
bintray-rabbitmq-server/primary | 5.8 kB 00:00:02
bintray-rabbitmq-server 10/10
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 rabbitmq-server.noarch.0.3.8.9-1.el7 將被 安裝
--> 正在處理依賴關係 socat,它被軟體包 rabbitmq-server-3.8.9-1.el7.noarch 需要
--> 正在檢查事務
---> 軟體包 socat.x86_64.0.1.7.3.2-2.el7 將被 安裝
--> 解決依賴關係完成
依賴關係解決
================================================================================================================================================================================================================
Package 架構 版本 源 大小
================================================================================================================================================================================================================
正在安裝:
rabbitmq-server noarch 3.8.9-1.el7 bintray-rabbitmq-server 15 M
為依賴而安裝:
socat x86_64 1.7.3.2-2.el7 base 290 k
事務概要
================================================================================================================================================================================================================
安裝 1 軟體包 (+1 依賴軟體包)
總下載量:15 M
安裝大小:16 M
Downloading packages:
(1/2): socat-1.7.3.2-2.el7.x86_64.rpm | 290 kB 00:00:00
(2/2): rabbitmq-server-3.8.9-1.el7.noarch.rpm | 15 MB 00:08:02
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
總計 32 kB/s | 15 MB 00:08:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝 : socat-1.7.3.2-2.el7.x86_64 1/2
正在安裝 : rabbitmq-server-3.8.9-1.el7.noarch 2/2
驗證中 : socat-1.7.3.2-2.el7.x86_64 1/2
驗證中 : rabbitmq-server-3.8.9-1.el7.noarch 2/2
已安裝:
rabbitmq-server.noarch 0:3.8.9-1.el7
作為依賴被安裝:
socat.x86_64 0:1.7.3.2-2.el7
完畢!
2.3 啟動rabbitmq
[root@linux-01 ~]# systemctl start rabbitmq-server
[root@linux-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 7516/beam.smp
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 7646/epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6467/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6742/master
tcp6 0 0 :::5672 :::* LISTEN 7516/beam.smp
tcp6 0 0 :::8080 :::* LISTEN 6900/java
tcp6 0 0 :::4369 :::* LISTEN 7646/epmd
tcp6 0 0 :::22 :::* LISTEN 6467/sshd
tcp6 0 0 ::1:25 :::* LISTEN 6742/master
[root@linux-01 ~]# ps -ef |grep rabbit
rabbitmq 7516 1 30 23:02 ? 00:00:10 /usr/lib64/erlang/erts-11.1.2/bin/beam.smp -W w -K true -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -- -root /usr/lib64/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa -noshell -noinput -s rabbit boot -boot start_sasl -lager crash_log false -lager handlers []
rabbitmq 7621 7516 0 23:02 ? 00:00:00 erl_child_setup 32768
rabbitmq 7646 1 0 23:02 ? 00:00:00 /usr/lib64/erlang/erts-11.1.2/bin/epmd -daemon
rabbitmq 7669 7621 0 23:02 ? 00:00:00 inet_gethost 4
rabbitmq 7670 7669 0 23:02 ? 00:00:00 inet_gethost 4
root 7688 7021 0 23:02 pts/0 00:00:00 grep --color=auto rabbit
2.4 開啟RabbitMQ網頁訪問
rabbitmq監聽的埠是4369和25672,如果需要訪問RabbitMQ的web控制檯還需要安裝一個外掛rabbitmq_management。安裝好這個外掛後,RabbitMQ網頁訪問埠是15672,可以通過netstat檢視監聽埠。
[root@linux-01 ~]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@linux-01:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@linux-01...
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
started 3 plugins.
[root@linux-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 7516/beam.smp
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 7646/epmd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6467/sshd
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 7516/beam.smp
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6742/master
tcp6 0 0 :::5672 :::* LISTEN 7516/beam.smp
tcp6 0 0 :::8080 :::* LISTEN 6900/java
tcp6 0 0 :::4369 :::* LISTEN 7646/epmd
tcp6 0 0 :::22 :::* LISTEN 6467/sshd
tcp6 0 0 ::1:25 :::* LISTEN 6742/master
可以使用ip:port形式訪問RabbitMQ,使用的使用者名稱是:guest,密碼guest。發現這個使用者名稱只可以在localhost訪問,可以通過nginx反向代理實現訪問,如下。
[root@linux-01 ~]# cd /usr/local/nginx/conf/vhost/
[root@linux-01 vhost]# vim ra.ceshi.com.conf
server {
listen 80;
server_name ra.ceshi.com;
location /
{
proxy_pass http://127.0.0.1:15672;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
[root@linux-01 vhost]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@linux-01 vhost]# /usr/local/nginx/sbin/nginx -s reload
修改密碼需要進入RabbitMQ上修改,如下圖:
3.rabbitmq常用命令
3.1 虛擬機器管理
- rabbitmqctl list_vhosts #列出所有的虛擬主機
- rabbitmqctl add_vhost <虛擬主機名字> #建立虛擬主機
如:rabbitmqctl add_vhost aming #建立aming虛擬主機 - rabbitmqctl delete_vhost <虛擬主機名字> #刪除虛擬主機,注意vhost不要加s。
[root@linux-01 vhost]# rabbitmqctl list_vhosts
Listing vhosts ...
name
/
[root@linux-01 vhost]# rabbitmqctl add_vhost ceshi
Adding vhost "ceshi" ...
[root@linux-01 vhost]# rabbitmqctl list_vhosts
Listing vhosts ...
name
/
ceshi
[root@linux-01 vhost]# rabbitmqctl delete_vhost ceshi
Deleting vhost "ceshi" ...
[root@linux-01 vhost]# rabbitmqctl list_vhosts
Listing vhosts ...
name
/
[root@linux-01 vhost]#
3.2 使用者管理
3.2.1 使用者的增刪改密
- rabbitmqctl add_user #建立使用者
如:rabbitmqctl add_user user1 user1_passwd #建立user1使用者,密碼為user1_passwd - rabbitmqctl list_users #列出所有使用者
- rabbitmqctl change_password #更改使用者密碼
如:rabbitmqctl change_password user1 new_passwd #更改user1的密碼為new_passwd - rabbitmqctl delete_user #刪除使用者
- rabbitmqctl clear_password #清除使用者密碼
[root@linux-01 vhost]# rabbitmqctl add_user ceshi ceshi
Adding user "ceshi" ...
[root@linux-01 vhost]#
新增一個ceshi使用者來訪問rabbitmq,建立好發現沒有許可權訪問,這個是沒有給這個使用者新增許可權,可以登入guest使用者來檢視是否有此使用者,發現已經有此使用者,如下圖。
## 修改ceshi使用者的密碼
[root@linux-01 vhost]# rabbitmqctl change_password ceshi ceshi1
Changing password for user "ceshi" ...
[root@linux-01 vhost]# rabbitmqctl add_user ceshi1 ceshi1
Adding user "ceshi1" ...
## 檢視rabbitmq都有哪些使用者
[root@linux-01 vhost]# rabbitmqctl list_users
Listing users ...
user tags
ceshi1 []
guest [administrator]
ceshi []
## 清楚掉ceshi1使用者的密碼,在rabbitmq控制檯上可以看到ceshi1使用者的密碼是空的圈,如下圖
[root@linux-01 vhost]# rabbitmqctl clear_password ceshi1
Clearing password for user "ceshi1" ...
## 刪除使用者,可以看到控制檯上的使用者會同步刪除,其實在控制檯也是可以新增使用者和密碼,包含tags
[root@linux-01 vhost]# rabbitmqctl delete_user ceshi1
Deleting user "ceshi1" ...
3.2.2使用者的tags
(1) 超級管理員(administrator)
可登陸管理控制檯(啟用management plugin的情況下),可檢視所有的資訊,並且可以對使用者,策略(policy)進行操作。
(2) 監控者(monitoring)
可登陸管理控制檯(啟用management plugin的情況下),同時可以檢視rabbitmq節點的相關資訊(程式數,記憶體使用情況,磁碟使用情況等)
(3) 策略制定者(policymaker)
可登陸管理控制檯(啟用management plugin的情況下), 同時可以對policy進行管理。但無法檢視節點的相關資訊。
(4) 普通管理者(management)
僅可登陸管理控制檯(啟用management plugin的情況下),無法看到節點資訊,也無法對策略進行管理。
(5) 其他
無法登陸管理控制檯,通常就是普通的生產者和消費者。
-
rabbitmqctl set_user_tags #賦予使用者某個角色
如:rabbitmqctl set_user_tags user1 managemnet #賦予user1使用者management角色
rabbitmqctl set_user_tags user2 monitoring management #同時賦予多個角色 -
rabbitmqctl set_permissions -p #給使用者設定許可權
如:rabbitmqctl set_permissions -p vhost1 user1 ‘.’ '.’ ‘.*’ #針對vhost1虛擬主機給user1使用者設定所有的配置、讀寫queue和exchange的許可權。
說明:使用者許可權指的是使用者對exchange,queue的操作許可權,包括配置許可權,讀寫許可權。配置許可權會影響到exchange,queue的宣告和刪除。讀寫許可權影響到從queue裡取訊息,向exchange傳送訊息以及queue和exchange的繫結(bind)操作。例如: 將queue繫結到某exchange上,需要具有queue的可寫許可權,以及exchange的可讀許可權;向exchange傳送訊息需要具有exchange的可寫許可權;從queue裡取資料需要具有queue的可讀許可權。 -
rabbitmqctl list_user_permissions #列出某使用者的許可權,即該使用者對哪個虛擬主機有許可權
-
rabbitmqctl list_permissions -p #列出指定虛擬主機下所有使用者的許可權,即哪些使用者對該虛擬主機有許可權
-
rabbitmqctl clear_permissions -p #清除某使用者在指定虛擬機器上的授權
如:rabbitmqctl clear_permissions -p vhost1 user1
```bash
## 給ceshi使用者新增tags
[root@linux-01 vhost]# rabbitmqctl set_user_tags ceshi managemnet
Setting tags for user "ceshi" to [managemnet] ...
## 給使用者新增多個tags
[root@linux-01 vhost]# rabbitmqctl set_user_tags ceshi managemnet administrator
Setting tags for user "ceshi" to [managemnet, administrator] ...
[root@linux-01 vhost]# rabbitmqctl set_user_tags ceshi managemnet
Setting tags for user "ceshi" to [managemnet] ...
[root@linux-01 vhost]# rabbitmqctl set_user_tags ceshi managemnet administrator
Setting tags for user "ceshi" to [managemnet, administrator] ...
[root@linux-01 vhost]# rabbitmqctl add_vhost lololo
Adding vhost "lololo" ...
[root@linux-01 vhost]# rabbitmqctl list_vhosts
Listing vhosts ...
name
lololo
/
[root@linux-01 vhost]# rabbitmqctl set_permissions -p lololo ceshi '.*' '.*' '.*'
Setting permissions for user "ceshi" in vhost "lololo" ...
[root@linux-01 vhost]# rabbitmqctl list_user_permissions ceshi
Listing permissions for user "ceshi" ...
vhost configure write read
lololo .* .* .*
[root@linux-01 vhost]# rabbitmqctl list_permissions -p lololo
Listing permissions for vhost "lololo" ...
user configure write read
ceshi .* .* .*
[root@linux-01 vhost]# rabbitmqctl clear_permissions -p lololo ceshi
Clearing permissions for user "ceshi" in vhost "lololo" ...
[root@linux-01 vhost]# rabbitmqctl list_permissions -p lololo
Listing permissions for vhost "lololo" ...
[root@linux-01 vhost]#
3.2.3 外掛管理
- rabbitmq-plugins list #獲取RabbitMQ外掛列表
- rabbitmq-plugins enable <外掛名字> #安裝RabbitMQ外掛
- rabbitmq-plugins disable <外掛名字> #解除安裝某個外掛
[root@linux-01 vhost]# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@linux-01
|/
[ ] rabbitmq_amqp1_0 3.8.9
[ ] rabbitmq_auth_backend_cache 3.8.9
[ ] rabbitmq_auth_backend_http 3.8.9
[ ] rabbitmq_auth_backend_ldap 3.8.9
[ ] rabbitmq_auth_backend_oauth2 3.8.9
[ ] rabbitmq_auth_mechanism_ssl 3.8.9
[ ] rabbitmq_consistent_hash_exchange 3.8.9
[ ] rabbitmq_event_exchange 3.8.9
[ ] rabbitmq_federation 3.8.9
[ ] rabbitmq_federation_management 3.8.9
[ ] rabbitmq_jms_topic_exchange 3.8.9
[E*] rabbitmq_management 3.8.9
[e*] rabbitmq_management_agent 3.8.9
[ ] rabbitmq_mqtt 3.8.9
[ ] rabbitmq_peer_discovery_aws 3.8.9
[ ] rabbitmq_peer_discovery_common 3.8.9
[ ] rabbitmq_peer_discovery_consul 3.8.9
[ ] rabbitmq_peer_discovery_etcd 3.8.9
[ ] rabbitmq_peer_discovery_k8s 3.8.9
[ ] rabbitmq_prometheus 3.8.9
[ ] rabbitmq_random_exchange 3.8.9
[ ] rabbitmq_recent_history_exchange 3.8.9
[ ] rabbitmq_sharding 3.8.9
[ ] rabbitmq_shovel 3.8.9
[ ] rabbitmq_shovel_management 3.8.9
[ ] rabbitmq_stomp 3.8.9
[ ] rabbitmq_top 3.8.9
[ ] rabbitmq_tracing 3.8.9
[ ] rabbitmq_trust_store 3.8.9
[e*] rabbitmq_web_dispatch 3.8.9
[ ] rabbitmq_web_mqtt 3.8.9
[ ] rabbitmq_web_mqtt_examples 3.8.9
[ ] rabbitmq_web_stomp 3.8.9
[ ] rabbitmq_web_stomp_examples 3.8.9
3.2.4 限制
-
rabbitmqctl set_vhost_limits -p vhost_name ‘{“max-connections”: 256}’ #設定虛擬主機的最大連線數
-
rabbitmqctl set_vhost_limits -p vhost_name ‘{“max-connections”: 0}’ #不允許客戶端連線虛擬主機
-
rabbitmqctl set_vhost_limits -p vhost_name ‘{“max-connections”: -1}’ #不限制連線數
-
rabbitmqctl set_vhost_limits -p vhost_name ‘{“max-queues”: 1024}’ #限制虛擬主機裡最大的佇列數
-
rabbitmqctl set_vhost_limits -p vhost_name ‘{“max-queues”: -1}’ #不限制佇列數
3.2.4 其他
-
rabbitmqctl list_exchanges #列出所有的交換器
-
rabbitmqctl list_bindings #列出所有的繫結,即把exchange和queue按照路由規則繫結起來
-
rabbitmqctl list_queues #分別檢視當前系統種存在的Exchange和Exchange上繫結的Queue資訊。
-
rabbitmqctl status #檢視執行資訊
相關文章
- RabbitMQ系列隨筆——介紹及安裝MQ
- PostgreSQL簡介及安裝SQL
- Allure簡介及安裝
- Django簡介及安裝Django
- Docker簡介及安裝Docker
- Locust 簡介及安裝使用
- Chaosblade簡介及安裝部署
- 1、Linux簡介及安裝Linux
- consul的簡介及安裝
- PostgreSQL簡介及安裝步驟SQL
- Spring的簡介安裝及配置Spring
- Docker 理論簡介及安裝教程Docker
- RabbitMQ簡介MQ
- redis 簡介及windows 下的redis 安裝RedisWindows
- RabbitMQ 安裝及簡單使用(基於 docker|白小純版)MQDocker
- rabbitmq簡易安裝詳細教程MQ
- Redis系列(一):Redis簡介及環境安裝Redis
- KVM簡介,安裝及常見使用詳解
- Docker-ElasticSearch7.8.1 安裝及簡單介紹DockerElasticsearch
- K8s(Kubernetes)簡介及安裝部署K8S
- Multisim14--軟體簡介及安裝教程(內含安裝包)
- CentOS安裝RabbitMQ及PHP擴充套件CentOSMQPHP套件
- 訊息匯流排Bus介紹及使用場景-訊息佇列和RabbitMQ介紹及安裝佇列MQ
- 【RabbitMQ】安裝MQ
- 安裝RabbitMQMQ
- Rancher簡介與安裝
- 安裝apache及介紹Apache
- RabbitMQ使用教程(一)RabbitMQ環境安裝配置及Hello World示例MQ
- 關於 RabbitMQ 的安裝與簡單使用MQ
- Linux安裝rabbitmq簡單教程(Centos6.5)LinuxMQCentOS
- Redis實戰(一)Redis簡介及環境安裝(Windows)RedisWindows
- Python爬蟲之scrapy框架簡介及環境安裝Python爬蟲框架
- 如何安裝RabbitMQMQ
- Windows RabbitMQ安裝WindowsMQ
- Docker安裝RabbitmqDockerMQ
- Mac 安裝 RabbitMQMacMQ
- docker 安裝 RabbitMQDockerMQ
- Ubantu 安裝 rabbitMQMQ