成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

RabbitMQ 中的 VirtualHost 該如何理解

開發 前端
當我們第一次安裝好一個 RabbitMQ 之后,我們可能都會通過 Web 頁面去管理這個 RabbitMQ,默認情況下,我們第一次使用的默認用戶是 guest。

當我們第一次安裝好一個 RabbitMQ 之后,我們可能都會通過 Web 頁面去管理這個 RabbitMQ,默認情況下,我們第一次使用的默認用戶是 guest。

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

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

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

1. 多租戶

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

我們安裝一個 RabbitMQ 服務器,每一個 RabbitMQ 服務器都能創建出許多虛擬的消息服務器,這些虛擬的消息服務器就是我們所說的虛擬主機(virtual host),一般簡稱為 vhost。

本質上,每一個 vhost 都是一個獨立的小型 RabbitMQ 服務器,這個 vhost 中會有自己的消息隊列、消息交換機以及相應的綁定關系等等,并且擁有自己獨立的權限,不同的 vhost 中的隊列和交換機不能互相綁定,這樣技能保證運行安全又能避免命名沖突。

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

要我來說,我們該怎么看待 vhost 和 RabbitMQ 的關系呢?RabbitMQ 相當于一個 Excel 文件,而 vhost 則是 Excel 文件中的一個個 sheet,我們所有的操作都是在某一個 sheet 上進行操作。

本質上來說,vhost 算是 AMQP 協議中的概念。

2. 命令行創建 vhost

先來看看如何通過命令行創建 vhost。

因為松哥這里的 RabbitMQ 是用 docker 安裝的,所以我們首先進入到 docker 容器中:

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

然后執行如下命令創建一個名為 /myvh 的 vhost:

  1. rabbitmqctl add_vhost myvh 

最終執行結果如下:

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

  1. rabbitmqctl list_vhosts 

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

可以通過如下命令刪除一個 vhost:

  1. rabbitmqctl delete_vhost myvh 

當刪除一個 vhost 的時候,與這個 vhost 相關的消息隊列、交換機以及綁定關系等,統統都會被刪除。

給一個用戶設置 vhost:

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

前面參數都好說,最后面三個 ".*" 含義分別如下:

  • 用戶在所有資源上都擁有可配置權限(創建/刪除消息隊列、創建/刪除交換機等)。
  • 用戶在所有資源上都擁有寫權限(發消息)。
  • 用戶在所有資源上都擁有讀權限(消息消費,清空隊列等)。

禁止一個用戶訪問某個 vhost:

  1. rabbitmqctl clear_permissions -p myvh guest 

3. 管理頁面創建 vhost

當然我們也可以在網頁端管理 vhost:

在 admin 選項卡中,點擊右邊的 Virtual Hosts,如下:

然后點擊下邊的 Add a new virtual host ,可以添加一個新的 vhost:

進入到某一個 vhost 之后,可以修改其權限以及刪除一個 vhost,如下圖:

4. 用戶管理

因為 vhost 通常跟用戶一起出現,所以這里我也順便說下 user 的相關操作。

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

  1. rabbitmqctl add_user javaboy 123 

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

  1. rabbitmqctl change_password javaboy 123456 

通過如下命令可以驗證用戶密碼:

  1. rabbitmqctl authenticate_user javaboy 123456 

驗證成功和驗證失敗的情況分別如下:

通過如下命令可以查看當前的所有用戶:

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

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

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

  1. rabbitmqctl set_user_tags javaboy administrator 

最后,刪除一個用戶的命令如下:

  1. rabbitmqctl delete_user javaboy 

5. 小結

好啦,關于 RabbitMQ 的一點瑣碎知識,感興趣的小伙伴可以試試哦~

本文轉載自微信公眾號「江南一點雨」,可以通過以下二維碼關注。轉載本文請聯系江南一點雨公眾號。

 

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2021-12-03 18:04:06

命令 RabbitMQ Web

2024-09-13 17:13:56

Redis 6NoSQL多線程

2024-01-25 18:00:56

微服務系統KafkaRabbitMQ

2011-07-19 11:35:09

linux網絡協議

2020-05-08 17:05:11

VMware網絡NAT

2019-07-04 23:25:22

云計算云服務云平臺

2021-06-11 07:26:16

數據倉庫機器學習

2020-06-01 11:01:28

智慧城市物聯網技術

2021-03-16 11:07:06

人工智能

2020-08-23 11:32:21

JavaScript開發技術

2011-03-22 10:56:23

平臺

2023-03-09 12:21:38

2022-03-04 10:17:04

Redis數據

2021-05-06 09:18:18

SQL自連接數據

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系統集成

2018-05-24 09:42:05

HAProxy負載均衡RabbitMQ

2019-01-03 15:10:40

JVM安全資源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美国产精品 | 国产一级视屏 | 国产免费一区二区 | 亚洲精品一区二区在线观看 | 日韩欧美一级片 | 国外成人在线视频 | 91精品一区二区三区久久久久久 | 97超级碰碰 | 又爽又黄axxx片免费观看 | 自拍偷拍小视频 | 天天夜碰日日摸日日澡 | 天天天堂| 日韩精品一区二区三区高清免费 | 久久精品综合 | 好姑娘高清在线观看电影 | 国产精品一区二区不卡 | 国产精品久久久亚洲 | 国产成人免费视频网站高清观看视频 | 欧美成人激情 | 天天玩天天干天天操 | 欧美一级黄色免费 | 国产91在线观看 | 黄色免费观看网站 | 国产精品jizz在线观看老狼 | 日日草天天干 | 91视频在线网站 | 天天操伊人 | 天堂在线一区 | 羞羞在线视频 | 国产精品.xx视频.xxtv | 国产欧美日韩一区 | 毛片久久久| 伊人色综合久久天天五月婷 | 偷偷操视频 | 欧美一区二区三区 | 欧美精品一区二区三区在线播放 | 久久久久久免费观看 | 日本精品一区二区三区视频 | 黑人成人网 | 中文字幕 欧美 日韩 | 亚洲激情在线观看 |