偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

RabbitMQ 中的 VirtualHost 該如何理解

開發(fā) 前端
當(dāng)我們第一次安裝好一個(gè) RabbitMQ 之后,我們可能都會(huì)通過 Web 頁面去管理這個(gè) RabbitMQ,默認(rèn)情況下,我們第一次使用的默認(rèn)用戶是 guest。

當(dāng)我們第一次安裝好一個(gè) RabbitMQ 之后,我們可能都會(huì)通過 Web 頁面去管理這個(gè) RabbitMQ,默認(rèn)情況下,我們第一次使用的默認(rèn)用戶是 guest。

登錄成功后,在 admin 選項(xiàng)卡可以查看所有用戶:

可以看到,每個(gè)用戶都有一個(gè) Can access virtual hosts 屬性,這個(gè)屬性是啥意思呢?

今天松哥來和大家稍微捋一捋。

1. 多租戶

RabbitMQ 中有一個(gè)概念叫做多租戶,怎么理解呢?

我們安裝一個(gè) RabbitMQ 服務(wù)器,每一個(gè) RabbitMQ 服務(wù)器都能創(chuàng)建出許多虛擬的消息服務(wù)器,這些虛擬的消息服務(wù)器就是我們所說的虛擬主機(jī)(virtual host),一般簡(jiǎn)稱為 vhost。

本質(zhì)上,每一個(gè) vhost 都是一個(gè)獨(dú)立的小型 RabbitMQ 服務(wù)器,這個(gè) vhost 中會(huì)有自己的消息隊(duì)列、消息交換機(jī)以及相應(yīng)的綁定關(guān)系等等,并且擁有自己獨(dú)立的權(quán)限,不同的 vhost 中的隊(duì)列和交換機(jī)不能互相綁定,這樣技能保證運(yùn)行安全又能避免命名沖突。

我們并不需要特別的去看待 vhost,他就跟普通的物理 RabbitMQ 一樣,不同的 vhost 能夠提供邏輯上的分離,確保不同的應(yīng)用消息隊(duì)列能夠安全獨(dú)立運(yùn)行。

要我來說,我們?cè)撛趺纯创?vhost 和 RabbitMQ 的關(guān)系呢?RabbitMQ 相當(dāng)于一個(gè) Excel 文件,而 vhost 則是 Excel 文件中的一個(gè)個(gè) sheet,我們所有的操作都是在某一個(gè) sheet 上進(jìn)行操作。

本質(zhì)上來說,vhost 算是 AMQP 協(xié)議中的概念。

2. 命令行創(chuàng)建 vhost

先來看看如何通過命令行創(chuàng)建 vhost。

因?yàn)樗筛邕@里的 RabbitMQ 是用 docker 安裝的,所以我們首先進(jìn)入到 docker 容器中:

  1. docker exec -it some-rabbit /bin/bash 

然后執(zhí)行如下命令創(chuàng)建一個(gè)名為 /myvh 的 vhost:

  1. rabbitmqctl add_vhost myvh 

最終執(zhí)行結(jié)果如下:

然后通過如下命令可以查看已有的 vhost:

  1. rabbitmqctl list_vhosts 

當(dāng)然這個(gè)命令也可以添加兩個(gè)選項(xiàng) name 和 tracing,name 表示 vhost 的名稱,tracing 則表示是否使用了 tracing 功能(tracing 可以幫助追蹤 RabbitMQ 中消息的流入流出情況),如下圖:

可以通過如下命令刪除一個(gè) vhost:

  1. rabbitmqctl delete_vhost myvh 

當(dāng)刪除一個(gè) vhost 的時(shí)候,與這個(gè) vhost 相關(guān)的消息隊(duì)列、交換機(jī)以及綁定關(guān)系等,統(tǒng)統(tǒng)都會(huì)被刪除。

給一個(gè)用戶設(shè)置 vhost:

  1. rabbitmqctl set_permissions -p myvh guest ".*" ".*" ".*" 

前面參數(shù)都好說,最后面三個(gè) ".*" 含義分別如下:

  • 用戶在所有資源上都擁有可配置權(quán)限(創(chuàng)建/刪除消息隊(duì)列、創(chuàng)建/刪除交換機(jī)等)。
  • 用戶在所有資源上都擁有寫權(quán)限(發(fā)消息)。
  • 用戶在所有資源上都擁有讀權(quán)限(消息消費(fèi),清空隊(duì)列等)。

禁止一個(gè)用戶訪問某個(gè) vhost:

  1. rabbitmqctl clear_permissions -p myvh guest 

3. 管理頁面創(chuàng)建 vhost

當(dāng)然我們也可以在網(wǎng)頁端管理 vhost:

在 admin 選項(xiàng)卡中,點(diǎn)擊右邊的 Virtual Hosts,如下:

然后點(diǎn)擊下邊的 Add a new virtual host ,可以添加一個(gè)新的 vhost:

進(jìn)入到某一個(gè) vhost 之后,可以修改其權(quán)限以及刪除一個(gè) vhost,如下圖:

4. 用戶管理

因?yàn)?vhost 通常跟用戶一起出現(xiàn),所以這里我也順便說下 user 的相關(guān)操作。

添加一個(gè)用戶名為 javaboy,密碼為 123 的用戶,方式如下:

  1. rabbitmqctl add_user javaboy 123 

通過如下命令可以修改用戶密碼(將 javaboy 的密碼改為 123456):

  1. rabbitmqctl change_password javaboy 123456 

通過如下命令可以驗(yàn)證用戶密碼:

  1. rabbitmqctl authenticate_user javaboy 123456 

驗(yàn)證成功和驗(yàn)證失敗的情況分別如下:

通過如下命令可以查看當(dāng)前的所有用戶:

第一列是用戶名,第二列是用戶角色。

關(guān)于用戶角色,我在上篇文章中已經(jīng)聊過了,這里就不再贅述。傳送門:RabbitMQ 管理頁面該如何使用。

給用戶設(shè)置角色的命令如下(給 javaboy 設(shè)置 administrator 角色):

  1. rabbitmqctl set_user_tags javaboy administrator 

最后,刪除一個(gè)用戶的命令如下:

  1. rabbitmqctl delete_user javaboy 

5. 小結(jié)

好啦,關(guān)于 RabbitMQ 的一點(diǎn)瑣碎知識(shí),感興趣的小伙伴可以試試哦~

本文轉(zhuǎn)載自微信公眾號(hào)「江南一點(diǎn)雨」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系江南一點(diǎn)雨公眾號(hào)。

 

責(zé)任編輯:武曉燕 來源: 江南一點(diǎn)雨
相關(guān)推薦

2024-09-13 17:13:56

Redis 6NoSQL多線程

2021-12-03 18:04:06

命令 RabbitMQ Web

2024-01-25 18:00:56

微服務(wù)系統(tǒng)KafkaRabbitMQ

2011-07-19 11:35:09

linux網(wǎng)絡(luò)協(xié)議

2020-05-08 17:05:11

VMware網(wǎng)絡(luò)NAT

2019-07-04 23:25:22

云計(jì)算云服務(wù)云平臺(tái)

2021-06-11 07:26:16

數(shù)據(jù)倉庫機(jī)器學(xué)習(xí)

2020-06-01 11:01:28

智慧城市物聯(lián)網(wǎng)技術(shù)

2021-03-16 11:07:06

人工智能

2020-08-23 11:32:21

JavaScript開發(fā)技術(shù)

2011-03-22 10:56:23

平臺(tái)

2023-03-09 12:21:38

2021-05-06 09:18:18

SQL自連接數(shù)據(jù)

2022-03-04 10:17:04

Redis數(shù)據(jù)

2024-05-23 12:11:39

2021-02-25 10:20:26

Java接口代碼

2009-04-27 09:41:01

C#WPFTemplate

2017-07-26 11:32:50

NETRabbitMQ系統(tǒng)集成

2018-08-05 06:48:34

2019-01-03 15:10:40

JVM安全資源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)