RabbitMQ 概述與安裝

MQ 作用與介紹

MQ 是什么

MQ (message queue),從字面意思看是一個隊列, FIFO 先進先出,只不過里面存放的內容是 消息?

消息 可以比較簡單,比如只包含 文本字符串,JSON 等;也可以很復雜,比如 內嵌對象 等

MQ 多用于分布式系統之間進行通信

系統之間的調用通常有兩種方式:

1.同步通信

直接調用對方的服務,數據從一端發出后立即就可以到達另一端

2.異步通信

數據從一端發出后,先進入一個容器進行臨時存儲,當達成某個條件時,再由這個容器發送給另一端.

容器的一個具體實現就是 MQ (message queue)

MQ 作用

MQ 主要工作是接收并轉發消息

1.異步解耦

在業務流程中, 一些操作可能非常耗時, 但并不需要即時返回結果. 可以借助MQ把這些操作異步化, 比如用戶注冊后發送注冊短信或郵件通知, 可以作為異步任務處理, 而不必等待這些操作完成后才告知用戶注冊成功

2.流量削峰

在訪問量劇增的情況下, 應用仍然需要繼續發揮作用 但是這樣的突發流量并不常見. 如果以能處理這類峰值為標準而投?資源,無疑是巨大的浪費. 使用MQ能夠使關鍵組件支撐突發訪問壓力, 不會因為突發流量而崩潰. 比如秒殺或者促銷活動, 可以使用MQ來控制流量, 將請求排隊, 然后系統根據自己的處理能力逐步處理這些請求

3.消息分發

當多個系統需要對同?數據做出響應時, 可以使用MQ進行消息分發. 比如支付成功后, 支付系統可以向MQ發送消息, 其他系統訂閱該消息, 而無需輪詢數據庫

4.延遲通知

在需要在特定時間后發送通知的場景中, 可以使用MQ的延遲消息功能, 比如在電子商務平臺中,如果用戶下單后?定時間內未支付,可以使用延遲隊列在超時后自動取消訂單

..

MQ 選擇

目前有很多的MQ產品, 例如RabbitMQ, RocketMQ, ActiveMQ, Kafka, ZeroMQ等, 也有直接使用Redis充當消息隊列的案例, 這些消息隊列, 各有側重

1.Kafka

Kafka?開始的目的就是用于日志收集和傳輸,追求高吞吐量, 性能卓越, 單機吞吐達到十萬級, 在日志領域比較成熟, 功能較為簡單,主要支持簡單的 MQ 功能

2.RocketMQ

在設計時借鑒了Kafka,并做出了?些自己的改進, 可用性、可靠性以及穩定性等方面都有出色的表現. 適合對于可靠性比較高,且并發比較大的場景. 但支持的客戶端端語言不多, 且社區活躍度一般

3.RabbitMQ

采用Erlang語言開發, MQ 功能比較完備, 且幾乎支持所有主流語言,開源提供的界面也非常友好, 性能較好, 吞吐量能達到萬級, 社區活躍度也比較高

RabbitMQ 介紹

RabbitMQ 實現了 AMQP 的 消息隊列 服務

AMQP? Advanced Message Queuing Protocol (高級消息隊列協議)

是一個通用的應用層協議,提供統一消息服務的協議,為面向消息的中間件設計

基于此協議的客戶端與消息中間件可傳遞消息,并不受客戶端或中間件,開發語言等條件的限制

RabbitMQ 安裝

RabbitMQ已經包含在標準的Ubuntu倉庫中, 然而包含的版本通常比最新的RabbitMQ發行版落后很多,可能提供的RabbitMQ版本已經不支持. RabbitMQ團隊制作了自己的軟件包,并使用Cloudsmith進行分發

具體操作可參考 :?RabbitMQ

由于上述方法過于復雜,所以此處 使用 Ubuntu 倉庫中的版本來安裝

1.安裝 Erlang

RabbitMQ 需要 Erlang 語言的支持,在安裝 RabbitMQ 之前需要先安裝 Erlang

#更新軟件包

sudo apt-get update

#安裝 Erlang

sudo apt-get install erlang

#查看 Eralng 版本

sudo apt-get install erlang

#退出命令

halt().??

2.安裝 RabbitMQ

#更新軟件包

sudo apt-get update

#安裝 RabbitMQ

sudo apt-get install rabbitmq-server

#安裝結果確認

systemctl status rabbitmq-server

(此處出現 active 即為成功)

3.安裝 RabbitMQ 管理界面

#默認是不安裝管理界面的

rabbitmq-plugins enable rabbitmq_management

4.啟動服務并訪問

1. 啟動服務

#啟動 RabbitMQ

sudo service rabbitmq-server start

2. 通過 IP : port 訪問管理界面

http://云服務器IP:15672

15672 為默認端口號,云服務器需要開啟端口

默認用戶名和密碼都是 guest

RabbitMQ 從 3.3.0 開始禁止使用 guest/guest 權限通過除 localhost 外的訪問

此處需要添加新的管理員用戶

3. 添加管理員用戶

#添加用戶 admin,密碼 admin

rabbitmqctl add_user admin admin

#給用戶添加權限

rabbitmqctl set_user_tag admin administrator

#通過 IP : port 訪問,使用剛才設置的用戶名和密碼登錄

瀏覽器? ? http://云服務器IP:15672

管理員界面如下圖所示:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907092.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何在Vue中實現延遲刷新列表:以Element UI的el-switch為例

如何在Vue中實現延遲刷新列表:以Element UI的el-switch為例 在開發過程中,我們經常需要根據用戶操作或接口響應結果來更新頁面數據。本文將以Element UI中的el-switch組件為例,介紹如何在狀態切換后延遲1秒鐘再調用刷新列表的方法&#xff0…

CSS2相關知識點

CSS2相關知識點 CSS的編寫位置樣式種類樣式表的優先級 CSS選擇器CSS基本選擇器通配選擇器元素選擇器類選擇器ID選擇器 復合選擇器HTML元素間的關系交集選擇器并集選擇器后代選擇器子代選擇器兄弟選擇器屬性選擇器偽類選擇器偽元素選擇器 顏色的表示表示方式一:顏色名…

centos yum源,docker源

yum源repo文件: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repodocker源repo文件: yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安裝docker和docker c…

深入探索AI模型工程:算法三大門派與監督學習的魅力

在當今人工智能蓬勃發展的時代,AI系統正逐漸滲透到我們生活的方方面面。從智能語音助手到自動駕駛汽車,從醫療影像診斷到金融風險預測,AI的應用場景無處不在。然而,構建一個高效、可靠的AI系統并非易事,它需要我們從宏…

[De1CTF 2019]SSRF Me

算是我第一次正兒八經的分析python代碼了 from flask import Flask, request import socket import hashlib import urllib import sys import os import jsonreload(sys) sys.setdefaultencoding(latin1)app Flask(__name__) # 創建一個Flask應用實例 secret_key os.ura…

Halcon 圖像預處理②

非線性圖像分段變化: 先窗體打開圖片 對數非線性變化: 結果圖像的亮度/對比度顯著增加 log_image(Image,LogImag1,e) 參數1:輸入圖像 參數2: 輸出圖像 參數3:底數 log_image(Image,LogImage2,0.1) 圖像結果亮度和…

云原生安全之網絡IP協議:從基礎到實踐指南

🔥「炎碼工坊」技術彈藥已裝填! 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 一、基礎概念 IP協議(Internet Protocol)是互聯網通信的核心協議族之一,負責在設備間傳遞數據包。其核心特性包括&…

QML學習08Text

Text 1、顏色(color)2、獲取寬度和高度(contentWidth、contentHeight)3、字體格式(font)4、文本樣式(textFormat)5、超鏈接 1、顏色(color) //顏色Text {colo…

Python網絡編程深度解析

目錄 一、網絡編程概述 二、TCP與UDP協議詳解 1.TCP協議:可靠傳輸的基石 2.UDP協議:高效但不可靠的傳輸 3. TCP與UDP對比 三、Socket編程模型 1. Socket基礎 2.TCP服務器實現詳解 3. UDP服務器實現詳解 四、進階應用:簡易聊天程序 …

ElasticSearch導讀

ElasticSearch 簡介:ElasticSearch簡稱ES是一個開源的分布式搜素和數據分析引擎。是使用Java開發并且是當前最流行的開源的企業級搜索引擎,能夠達到近實時搜索,它專門設計用于處理大規模的文本數據和實現高性能的全文搜索。它基于 Apache Luc…

【后端高階面經:數據庫篇】18、分布式事務:如何在分庫分表中實現高性能與一致性?

一、分布式事務核心挑戰:分庫分表下的一致性困境 在分布式系統架構中,分庫分表通過將數據分散存儲提升了擴展性和性能,但卻打破了傳統單庫事務的邊界,使得分布式事務成為保障數據一致性的核心難題。其挑戰主要體現在以下三方面: 1.1 ACID特性的分布式撕裂 原子性(Atomi…

Tailwind css實戰,基于Kooboo構建AI對話框頁面(一)

在當今數字化時代,AI 助手已成為網站和應用不可或缺的一部分。本文將帶你一步步使用 Tailwind CSS 和 Kooboo 構建一個現代化的 AI 對話界面框。 一、選擇 Kooboo平臺 的核心優勢 智能提示:在輸入 class 屬性時,會自動觸發 Tailwind CSS 規則…

python學習day2:進制+碼制+邏輯運算符

進制 Python 中的進制表示與轉換 進制的基本概念 二進制、八進制、十進制、十六進制的定義與特點不同進制在計算機科學中的應用場景 Python 中的進制表示 二進制表示:使用 0b 前綴八進制表示:使用 0o 前綴十六進制表示:使用 0x 前綴示例…

ROS2學習(11)------ROS2通信接口

操作系統:ubuntu22.04 IDE:Visual Studio Code 編程語言:C11 ROS版本:2 ROS 2 提供了多種通信接口,用于節點之間的數據交換。這些接口主要包括話題(Topics)、服務(Services)、動作&…

STM32G0xx基于串口(UART)Ymodem協議實現OTA升級包括Bootloader、上位機、應用程序

STM32G0xx基于串口Ymodem協議實現OTA升級包括Bootloader、上位機、應用程序 例程說明一、串口相關的底層配置二、OTA相關的應用層三、Flash相關的操作四、Flash存儲參數相關五、核心部分Ymodem相關六、其他宏配置七、主函數八、使用Python合并文件九、測試結果有疑問歡迎加交流…

Jenkins實踐(6):配置“構建歷史的顯示名稱,加上包名等信息“

Jenkins實踐(6):配置“構建歷史的顯示名稱,加上包名等信息“ 版本:Jenkins 4.262.2 需求:想要在構建歷史中展示,本次運行的是哪個版本或哪個包 操作步驟: 1、先安裝插件Build Name and Description Setter 2、Set Build Name 3、構建歷史處查看展示 插件特性說明 安裝依賴…

快速解決azure aks aad身份和權限問題

現狀分析 AKS cluster 1.31.8啟用aad 身份驗證和kubernetes RBAC 當嘗試執行kubectl get node命令時,系統返回以下錯誤信息: Error from server (Forbidden): nodes is forbidden: User "357517e8-4df5-4daa-88b4-94a84d763ec5" cannot list…

【玩轉騰訊混元大模型】騰訊混元大模型AIGC系列產品深度體驗

【玩轉騰訊混元大模型】騰訊混元大模型AIGC系列產品深度體驗 騰訊推出的系列AI產品:混元大模型、大模型圖像創作引擎、大模型視頻創作引擎、騰訊元寶,共同構成了一個強大的AI生態系統;憑借騰訊自研的大規模預訓練技術和先進的自然語言處理、計…

(自用)Java學習-5.13(Redis,OSS)

核心功能實現 1. 類別導航動態加載 前端實現&#xff1a; // 加載一級分類 $.ajax({url: /category/showFirstMenu?pid0,success: function(resp) {resp.forEach(item > {$(".index-menu").append(<li onmouseover"showSecondMenu(${item.id})">…

2025電工杯A題電工杯數學建模思路代碼文章教學:光伏電站發電功率日前預測問題

完整內容請看文章最下面的推廣群 已更新數據、思路和模型 問題1&#xff1a;基于歷史功率的光伏電站發電特性分析 建模與求解思路&#xff1a; 首先&#xff0c;需要收集光伏電站的歷史發電功率數據、地理位置信息&#xff08;經緯度、海拔、傾角等&#xff09;以及太陽輻照…