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

另類玩法!使用 Rest API 操作 RabbitMQ

開發 前端
如果我們安裝了 rabbitmq_management 插件,即安裝了 RabbitMQ 中的 Web 管理客戶端,那么我們就可以通過 REST API 來進行 RabbitMQ 的管理。
  • 1. REST API
  • 2. 開啟 Web 管理頁面
  • 3. 實踐
    • 3.1 查看隊列統計數據
    • 3.2 創建隊列
    • 3.3 查看當前連接信息
    • 3.4 查看當前用戶信息
    • 3.5 創建一個用戶
    • 3.6 為新用戶設置 vhost
  • 4. 小結

RabbitMQ 還可以這么玩!

關于 RabbitMQ 的管理,我們可以通過網頁來進行,在松哥前面的文章中也和小伙伴們做了相關的介紹了:

RabbitMQ 管理頁面該如何使用

不過呢,如果我們安裝了 rabbitmq_management 插件,即安裝了 RabbitMQ 中的 Web 管理客戶端,那么我們就可以通過 REST API 來進行 RabbitMQ 的管理。

可能有小伙伴會問,這有什么用?

如果我們的項目使用了如 Granglia 或者 Graphite 之類的圖形工具,我們想抓取當前 RabbitMQ 上消息消費/累積的情況,就可以使用使用 REST API 去查詢這些信息并將查詢結果傳輸到新的圖形工具上,同時,由于 REST API 就是 HTTP 請求,所以支持的客戶端也是多樣化,只要能發送 HTTP 請求,就能用,是不是特別方便?

1. REST API

可能有小伙伴還不懂什么是 REST API,這里就先簡單科普下:

REST(Representational State Transfer)是一種 Web 軟件架構風格,它是一種風格,而不是標準,匹配或兼容這種架構風格的的網絡服務稱為 REST 服務。

REST 服務簡潔并且有層次,它通常基于 HTTP、URI、XML 以及 HTML 這些現有的廣泛流行的協議和標準。在 REST 中,資源是由 URI 來指定,對資源的增刪改查操作可以通過 HTTP 協議提供的 GET、POST、PUT、DELETE 等方法實現。

使用 REST 可以更高效的利用緩存來提高響應速度,同時 REST 中的通信會話狀態由客戶端來維護,這可以讓不同的服務器處理一系列請求中的不同請求,進而提高服務器的擴展性。

在前后端分離項目中,一個設計良好的 Web 軟件架構必然要滿足 REST 風格。

2. 開啟 Web 管理頁面

再來說說如何開啟 Web 管理頁面,整體上來說,我們有兩種方式開啟 Web 管理頁面:

安裝 RabbitMQ 的時候,直接選擇 rabbitmq:3-management 鏡像,安裝命令如下:

  1. docker run -d --rm --hostname my-rabbit --name some-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management 

這樣安裝好的 RabbitMQ 就可以直接使用 Web 管理頁面了。

安裝的時候就選擇正常的普通鏡像 rabbitmq:3,安裝命令如下:

  1. docker run -d --hostname my-rabbit --name some-rabbit2 -p 5673:5672 -p 25672:15672 rabbitmq:3 

這個安裝好之后,需要我們進入到容器中,然后手動開啟 Web 管理插件,命令如下:

  1. docker exec -it some-rabbit2 /bin/bash 
  2. rabbitmq-plugins enable rabbitmq_management 

第一條命令是進入到容器中,第二條命令開啟 Web 管理插件,執行結果如下:

通過以上兩種方式任意一種把 Web 管理頁面打開,然后我們就可以使用 REST API 了。

3. 實踐

接下來我們就來體驗幾個常見的 REST API 操作。

我們可以通過 CURL 工具來發送請求,也可以通過 POSTMAN 來發送請求,兩者皆可,選擇自己喜歡的即可。松哥這里兩種方式都和大家演示一下。

3.1 查看隊列統計數據

例如我們想查看虛擬主機 myvh 下 hello-queue 隊列的數據統計,我們可以通過如下方式來查看:

  1. curl -i -u javaboy:123 http://localhost:15672/api/queues/myvh/hello-queue 

-i 表示顯示響應頭信息。

最終執行結果如下:

可以看到,返回的信息有響應頭,也有 JSON,不過返回的 JSON 沒有格式化,看起來有點難受,如果返回的數據只有 JSON 而不包含響應頭,那么我們可以使用 python 來完成數據的格式化,如下:

可以看到,此時返回的數據就格式化了。

當然我們也可以使用 POSTMAN 來發送這個請求,方式如下:

注意選擇認證方式為 Basic Auth,同時設置正確的用戶名密碼。

POSTMAN 請求還是方便很多。

3.2 創建隊列

在 /myvh 虛擬主機下創建一個名為 javaboy-queue 的隊列,使用 CURL 請求方式如下:

  1. curl -i -u javaboy:123 -XPUT -H "Content-Type:application/json" -d '{"auto_delete":false,"durable":true}' http://localhost:15672/api/queues/myvh/javaboy-queue 

注意請求方式是 PUT 請求,請求參數是 JSON 形式,JSON 里邊有兩個東西,一個 auto_delete 是說如果該隊列沒有任何消費者訂閱的話,該隊列是否會被自動刪除(如果是一些臨時隊列,則該屬性可以設置為 true);另外一個 durable 則是說隊列是否持久化(持久化的隊列,在 RabbitMQ 重啟之后,隊列依然存在),如果大家用 Java 代碼創建過隊列,這兩個參數很好理解,因為我們用 Java 代碼創建隊列的時候這兩個參數也會經常用到。

當然,我們也可以用 POSTMAN 來發送請求:

返回 201 Created 表示隊列創建成功。

不過要注意在 Authorization 選項卡中設置用戶名/密碼:

3.3 查看當前連接信息

我們可以通過如下請求查看當前連接信息:

請求如下:

  1. curl -i -u javaboy:123 http://localhost:15672/api/connections 

POSTMAN 查看方式如下:

3.4 查看當前用戶信息

  1. curl -i -u javaboy:123 http://localhost:15672/api/users 

POSTMAN 查看信息如下:

3.5 創建一個用戶

創建一個名為 zhangsan,密碼是 123 ,角色是 administrator 的用戶。

CURL:

  1. curl -i -u javaboy:123 -H "{Content-Type:application/json}" -d '{"password":"123","tags":"administrator"}' -XPUT http://localhost:15672/api/users/zhangsan 

POSTMAN:

3.6 為新用戶設置 vhost

將名為 zhangsan 的用戶設置到名為 myvh 的 vhost 下:

  1. curl -i -u javaboy:123 -H "{Content-Type:application/json}" -d '{"configure":".*","write":".*","read":".*"}' -XPUT http://localhost:15672/api/permissions/myvh/zhangsan 

參數是具體的權限信息:

POSTMAN 請求方式如下:

好啦,松哥這里隨便給大家舉幾個例子,其他 API 的用法,小伙伴們可以打開 RabbitMQ 的管理頁面,點擊下方的 HTTP API 按鈕,里邊有一個完整的文檔:

4. 小結

感興趣的小伙伴可以去試試哦~

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

 

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

2023-05-11 12:40:00

Spring控制器HTTP

2022-01-07 15:11:27

項目Go 框架

2022-05-31 07:40:41

ArctypeFeather.jsSQLite

2023-04-18 15:18:10

2018-06-11 13:34:18

云庫云計算

2022-05-06 09:52:17

REST接口API

2011-10-27 16:24:48

API

2022-02-10 23:38:23

API架構設計

2014-01-07 14:39:26

Android開發RxJavaREST

2020-04-22 09:00:00

REST API參數化前端

2023-10-30 18:59:38

REST API開發

2024-01-23 09:08:47

軟件架構REST

2012-06-27 09:47:05

ibmdw

2023-09-21 11:20:46

2010-10-28 09:56:53

Web APIRESTSOAP

2020-07-07 07:00:00

Spring WebFREST APIReactive AP

2022-03-29 09:00:00

Angular框架REST API

2023-02-03 17:29:46

2024-06-24 00:20:00

API應用程序接口

2023-04-10 14:20:47

ChatGPTRESTAPI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天综合久久 | 欧美成人黄色小说 | 国产精品久久久久久久岛一牛影视 | 激情欧美日韩一区二区 | 欧美中文一区 | 精品欧美在线观看 | 国产高清一区二区三区 | 在线欧美一区 | 91精品国产91久久久久福利 | 国产精品中文字幕在线 | 神马影院一区二区三区 | 丁香婷婷久久久综合精品国产 | 国产精品精品视频一区二区三区 | 国产精品自产av一区二区三区 | 亚洲天堂久久 | 国产精品免费一区二区 | 国产精品99久久久久 | 久久久久久国产精品 | 少妇无套高潮一二三区 | 在线日韩 | 欧美一级二级视频 | 欧美精品在线一区二区三区 | 韩国电影久久 | 日韩精品久久久 | 久久久99国产精品免费 | 精品国产18久久久久久二百 | 亚洲午夜精品视频 | 精国产品一区二区三区 | 亚洲草草视频 | 国产精品久久精品 | 蜜臀久久99精品久久久久久宅男 | 精品国产一区二区三区免费 | 一区中文字幕 | 国产成人久久精品一区二区三区 | 国产日韩中文字幕 | 亚洲美女在线一区 | 久久久久久国模大尺度人体 | 欧美日韩精品久久久免费观看 | 久久久久久国产 | 久久精品久久久久久 | 国产精品高清一区二区 |