RabbitMQ 安裝部署與配置總結

来源:https://www.cnblogs.com/shouke/p/18366520
-Advertisement-
Play Games

實踐環境 CentOS-7-x86_64-DVD-2009.iso rabbitmq-server-3.9.16-1.el7.noarch.rpm https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.16 https://git ...


實踐環境

CentOS-7-x86_64-DVD-2009.iso

rabbitmq-server-3.9.16-1.el7.noarch.rpm

https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.16

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.16/rabbitmq-server-3.9.16-1.el7.noarch.rpm

備註:rabbitmq-server最後一個支持CentOS7的版本

erlang-23.3.4.11-1.el7.x86_64.rpm

https://github.com/rabbitmq/erlang-rpm/releases

https://github.com/rabbitmq/erlang-rpm/releases/download/v23.3.4.11/erlang-23.3.4.11-1.el7.x86_64.rpm

備註:Erlang最後一個支持Centos7的版本

實踐操作

下載RabbitMQ及Erlang軟體包

RabbitMQ是採用 Erlang語言開發的,所以系統環境必須提供 Erlang環境,需要是安裝 Erlang。Erlang版本要和需要安裝的RabbitMQ版本匹配,可通過網址https://www.rabbitmq.com/docs/which-erlang 不同Erlang支持的RabbitMQ版本。

安裝軟體包

# rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
# rpm -ivh rabbitmq-server-3.9.16-1.el7.noarch.rpm 

說明:參照官方文檔,https://www.rabbitmq.com/docs/install-rpm#package-dependencies 還需要安裝依賴包:socatlogrotate,但是筆者實踐時未安裝這兩個依賴包。

運行RabbitMQ

RabbitMQ伺服器包安裝完成後,預設情況下伺服器不會作為守護進程啟動。運行以下命令,設置當系統啟動時,預設以管理員身份,以守護進程的方式啟動RabbitMQ

# systemctl enable rabbitmq-server
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

停、啟伺服器

# 啟動服務
# systemctl start rabbitmq-server

# 查看服務狀態
# systemctl status  rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2024-07-13 04:02:54 EDT; 12s ago
 Main PID: 1237 (beam.smp)
   CGroup: /system.slice/rabbitmq-server.service
           ├─1237 /usr/lib64/erlang/erts-11.2.2.10/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -...
           ├─1252 erl_child_setup 32768
           ├─1275 /usr/lib64/erlang/erts-11.2.2.10/bin/epmd -daemon
           ├─1296 inet_gethost 4
           └─1297 inet_gethost 4

Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: Doc guides:  https://rabbitmq.com/documentation.html
Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: Support:     https://rabbitmq.com/contact.html
Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: Tutorials:   https://rabbitmq.com/getstarted.html
Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: Monitoring:  https://rabbitmq.com/monitoring.html
Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: Logs: /var/log/rabbitmq/[email protected]
Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: /var/log/rabbitmq/rabbit@localhost_upgrade.log
Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: <stdout>
Jul 13 04:02:49 localhost.localdomain rabbitmq-server[1237]: Config file(s): (none)
Jul 13 04:02:54 localhost.localdomain rabbitmq-server[1237]: Starting broker... completed with 0 plugins.
Jul 13 04:02:54 localhost.localdomain systemd[1]: Started RabbitMQ broker.

# 停止服務
# systemctl stop rabbitmq-server

參考鏈接:https://www.rabbitmq.com/docs/install-rpm#running-rpm

啟用管理插件

# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@localhost:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@localhost...
Plugin configuration unchanged.

備註:開啟插件後不需要重啟伺服器

開啟後,瀏覽器訪問管理界面(預設地址:http://node-hostname:15672/.),如下,其中 192.167.206.101為RabbitMQ伺服器地址

參考連接:https://www.rabbitmq.com/docs/management#getting-started

配置文件管理

查找配置文件

# rabbitmq-diagnostics status
......
Config files


Log file(s)

 * /var/log/rabbitmq/[email protected]
 * /var/log/rabbitmq/rabbit@localhost_upgrade.log
 * <stdout>
......

如上,配置文件位於 Log file(s)上方,這裡筆者實踐時命令輸出中沒看到配置文件路徑信息,按官方文檔描述,應該Config files下應該會包含配置文件路徑信息,類似如下

Config files

 * /etc/rabbitmq/advanced.config
 * /etc/rabbitmq/rabbitmq.conf

參考連接:

https://www.rabbitmq.com/docs/configure#configuration-files

https://www.rabbitmq.com/docs/configure#verify-configuration-config-file-location

用戶管理

預設用戶訪問

broker預設創建了一個用戶名和密碼都為guest的用戶。預設情況下,該用戶只能在以訪問localhost的方式連接到broker,即不能遠程訪問。嘗試遠程訪問伺服器時會提示User can only log in via localhost。如果希望guest也可以遠程登錄,需要修改rabbitmq.conf 配置文件,文件末尾添加loopback_users = none

# vi /etc/rabbitmq/rabbitmq.conf 
loopback_users = none
# systemctl restart rabbitmq-server

參考連接:

https://www.rabbitmq.com/docs/install-rpm#default-user-access

https://www.rabbitmq.com/docs/access-control#user-management

添加用戶

# rabbitmqctl add_user "testacc"
Adding user "testacc" ...
Password: 
test1234
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.

獲取當前用戶列表

# rabbitmqctl list_users 
Listing users ...
user	tags
testacc	[]
guest	[administrator]
# rabbitmqctl list_users --formatter=json
[
{"user":"testacc","tags":[]}
,{"user":"guest","tags":["administrator"]}
]

刪除用戶

# rabbitmqctl delete_user 'username'

用戶授權

使用rabbitmqctl set_permissions要向虛擬主機中的用戶授予許可權:

# rabbitmqctl set_permissions -p "custom-vhost" "username" ".*" ".*" ".*"

說明:

第一個 ".*" 表示配置每個實體上的許可權(First ".*" for configure permission on every entity)
第二個 ".*" 表示每個實體的寫許可權(Second ".*" for write permission on every entity)
第二個 ".*" 表示每個實體的讀許可權(Third ".*" for read permission on every entity)
# rabbitmqctl set_permissions -p "/" "testacc" ".*" ".*" ".*"
Setting permissions for user "testacc" in vhost "/" ...

移除授權

使用rabbitmqctl clear_permissions移除授予給虛擬主機中的用戶許可權:

# Revokes permissions in a virtual host
rabbitmqctl.bat clear_permissions -p 'custom-vhost' 'username'

參考連接:https://www.rabbitmq.com/docs/access-control#user-management

https://www.rabbitmq.com/docs/access-control#override-default-user-credentials

設置用戶標簽

# rabbitmqctl set_user_tags testacc administrator
Setting tags for user "testacc" to [administrator] ...

說明:如果不設置標簽,以 testacc 用戶登錄管理界面時,會提示Not management user

參考連接:

https://www.rabbitmq.com/docs/man/rabbitmqctl.8#set_user_tags

https://www.rabbitmq.com/docs/management#permissions

登錄管理界面

開啟mqtt相關插件

# rabbitmq-plugins enable rabbitmq_mqtt
Enabling plugins on node rabbit@localhost:
rabbitmq_mqtt
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_mqtt
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@localhost...
The following plugins have been enabled:
  rabbitmq_mqtt

參考鏈接:

https://www.rabbitmq.com/docs/mqtt#enabling-plugin

# rabbitmq-plugins enable rabbitmq_web_mqtt
Enabling plugins on node rabbit@localhost:
rabbitmq_web_mqtt
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_mqtt
  rabbitmq_web_dispatch
  rabbitmq_web_mqtt
Applying plugin configuration to rabbit@localhost...
The following plugins have been enabled:
  rabbitmq_web_mqtt

started 1 plugins.

參考鏈接:https://www.rabbitmq.com/docs/web-mqtt#enabling

# rabbitmq-plugins enable rabbitmq_web_mqtt_examples
Enabling plugins on node rabbit@localhost:
rabbitmq_web_mqtt_examples
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_mqtt
  rabbitmq_web_dispatch
  rabbitmq_web_mqtt
  rabbitmq_web_mqtt_examples
Applying plugin configuration to rabbit@localhost...
The following plugins have been enabled:
  rabbitmq_web_mqtt_examples

參考鏈接:https://www.rabbitmq.com/docs/web-mqtt#examples

安裝後示例插件後,訪問 http://主機IP地址:15670,出現類似如下頁面

作者:授客
微信/QQ:1033553122
全國軟體測試QQ交流群:7156436

Git地址:https://gitee.com/ishouke
友情提示:限於時間倉促,文中可能存在錯誤,歡迎指正、評論!
作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額隨意,您的支持將是我繼續創作的源動力,打賞後如有任何疑問,請聯繫我!!!
           微信打賞                        支付寶打賞                  全國軟體測試交流QQ群  
              


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 邁信達音視頻字幕軟體(MaixindaSubtitle)是一款專註於自動化視頻轉錄文本、字幕製作、字幕翻譯的AI自動化字幕軟體。通過AI一鍵生成本地音頻與視頻的字幕文件,及翻譯字幕內容。使用AI提取音視頻對話內容後翻譯、生成字幕文件,可以低成本並高效地將任意語言的視頻、音頻轉錄並翻譯為目標語言,適用 ...
  • 前言 在Web應用項目中許可權認證是個繞不開的話題,傳統方法複雜又耗時。MiniAuth推出專為.NET開發者設計的簡單、實用的許可權認證項目。 MiniAuth,作為ASP.NET Core的插件,讓我們快速輕鬆實現用戶登錄、許可權檢查等功能。它支持多種認證方式,如JWT、Cookie,且易於集成到現有 ...
  • 案例 案例一 server.c #include <stdio.h> // 標準輸入輸出 #include <stdlib.h> //提供通用的工具函數,例如記憶體分配和程式退出。 #include <string.h> //提供字元串處理函數。 #include <unistd.h> //提供對 P ...
  • @目錄1.前期準備1.1 製作啟動盤1.2關閉快速啟動、安全啟動、bitlocker1.2.1 原因1.2.2 進入BIOSshell命令行進入BIOSwindows設置中高級啟動在開機時狂按某個鍵進入BIOS1.2.3 關閉Fast boot和Secure boot1.3 劃分磁碟空間1.3.1 ...
  • 環境ubuntu20.04 Arm官網有源碼和編譯鏈。但是沒有編譯手冊。 從安裝版本中拿到10.3-2021.07-x86_64-aarch64-none-linux-gnu-manifest.txt 根據裡面的記錄,去進行配置和編譯。 官網下載: https://developer.arm.com ...
  • 本方式使用docker Swarm集群的方式創建overlay 網路進行打通 背景 因java微服務使用nacos做配置中心,為瞭解決Nacos服務註冊使用Docker容器內網ip問題,使用此方案 前置條件 1、宿主機之間需要開通埠 管理埠: 2377/tcp: 用於管理 Swarm 模式集群。 ...
  • 用了好幾年Xfce桌面了,但是從來沒有仔細研究過Xfce底下相關的運行邏輯,最近才對相關的底層概念感興趣並去嘗試瞭解了一下,但是它的體系架構以及複雜的依賴關係令初來乍到者望而卻步。沒辦法,寫點什麼方便理解吧。 這一系列文章主要是探討Xfce底層實現的,不會過多聚焦於美化之類的話題。我的環境是Arch ...
  • 導讀:在這個快節奏的技術世界里,重溫過去並從中汲取靈感總是一件有趣的事情。今天要介紹的是一款僅用一天時間重製的經典 Macintosh 應用——Stapler。這款應用最初發佈於1992年,現在由一位充滿激情的開發者重新打造,不僅保留了原汁原味的功能,還加入了現代化的改進和特性,使其更適合現代 ma ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...