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 8、WPF、Prism.DryIoc、MVVM設計模式、Blazor以及MySQL資料庫構建的企業級工作流系統的WPF客戶端框架-AIStudio.Wpf.AClient 6.0。 項目介紹 框架採用了 Prism 框架來實現 MVVM 模式,不僅簡化了 MVVM 的典型 ...
  • 先看一下效果吧: 我們直接通過改造一下原版的TreeView來實現上面這個效果 我們先創建一個普通的TreeView 代碼很簡單: <TreeView> <TreeViewItem Header="人事部"/> <TreeViewItem Header="技術部"> <TreeViewItem He ...
  • 1. 生成式 AI 簡介 https://imp.i384100.net/LXYmq3 2. Python 語言 https://imp.i384100.net/5gmXXo 3. 統計和 R https://youtu.be/ANMuuq502rE?si=hw9GT6JVzMhRvBbF 4. 數 ...
  • 本文為大家介紹下.NET解壓/壓縮zip文件。雖然解壓縮不是啥核心技術,但壓縮性能以及進度處理還是需要關註下,針對使用較多的zip開源組件驗證,給大家提供個技術選型參考 之前在《.NET WebSocket高併發通信阻塞問題 - 唐宋元明清2188 - 博客園 (cnblogs.com)》講過,團隊 ...
  • 之前寫過兩篇關於Roslyn源生成器生成源代碼的用例,今天使用Roslyn的代碼修複器CodeFixProvider實現一個cs文件頭部註釋的功能, 代碼修複器會同時涉及到CodeFixProvider和DiagnosticAnalyzer, 實現FileHeaderAnalyzer 首先我們知道修 ...
  • 在軟體行業,經常會聽到一句話“文不如表,表不如圖”說明瞭圖形在軟體應用中的重要性。同樣在WPF開發中,為了程式美觀或者業務需要,經常會用到各種個樣的圖形。今天以一些簡單的小例子,簡述WPF開發中幾何圖形(Geometry)相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 在 C# 中使用 RabbitMQ 通過簡訊發送重置後的密碼到用戶的手機號上,你可以按照以下步驟進行 1.安裝 RabbitMQ 客戶端庫 首先,確保你已經安裝了 RabbitMQ 客戶端庫。你可以通過 NuGet 包管理器來安裝: dotnet add package RabbitMQ.Clien ...
  • 1.下載 Protocol Buffers 編譯器(protoc) 前往 Protocol Buffers GitHub Releases 頁面。在 "Assets" 下找到適合您系統的壓縮文件,通常為 protoc-{version}-win32.zip 或 protoc-{version}-wi ...
  • 簡介 在現代微服務架構中,服務發現(Service Discovery)是一項關鍵功能。它允許微服務動態地找到彼此,而無需依賴硬編碼的地址。以前如果你搜 .NET Service Discovery,大概率會搜到一大堆 Eureka,Consul 等的文章。現在微軟為我們帶來了一個官方的包:Micr ...
  • ZY樹洞 前言 ZY樹洞是一個基於.NET Core開發的簡單的評論系統,主要用於大家分享自己心中的感悟、經驗、心得、想法等。 好了,不賣關子了,這個項目其實是上班無聊的時候寫的,為什麼要寫這個項目呢?因為我單純的想吐槽一下工作中的不滿而已。 項目介紹 項目很簡單,主要功能就是提供一個簡單的評論系統 ...