文章提綱如下:

RabbitMQ" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 【我們一起來學 RabbitMQ 一 】RabbitMQ 的基本介紹

【我們一起來學 RabbitMQ 一 】RabbitMQ 的基本介紹

時間:2023-06-27 23:21:02 | 來源:網(wǎng)站運營

時間:2023-06-27 23:21:02 來源:網(wǎng)站運營

【我們一起來學 RabbitMQ 一 】RabbitMQ 的基本介紹:

【我們一起來學 RabbitMQ 一 】RabbitMQ 的基本介紹

嗨,大家好,我是小魔童哪吒,咱們從今天開始進入開源組件的學習,一邊學習一邊總結一邊分享

文章提綱如下:

本次文章不涉及編碼,編碼咱們統(tǒng)一放在下一次

RabbitMQ 簡單介紹

RabbitMQ 是一套開源(MPL)的消息隊列服務軟件,是由 LShift 提供的一個 Advanced Message Queuing Protocol (AMQP) 的開源實現(xiàn),由以高性能、健壯以及可伸縮性出名的 Erlang 寫成。

AMQP 是什么?

高級消息隊列協(xié)議,它使得遵從該規(guī)范的客戶端應用和消息中間件服務器的全功能互操作成為可能

客戶端應用可以通過這個協(xié)議與消息代理和它實現(xiàn)的 AMQP 模型進行交互通信

MQ 是什么?

全稱 Message Queue , 即消息總線

是一種跨進程、異步的通信機制

用于上下游傳遞消息,由消息系統(tǒng)來確保消息的可靠傳遞。

RabbitMQ 一般使用在什么場景?

RabbitMQ 組件中都包含了啥?

可以訂閱某個隊列

創(chuàng)建消息,然后發(fā)布到隊列中(queue),最終將消息發(fā)送到監(jiān)聽的消費者

一個實體,用于標識消息隊列服務器

虛擬主機

標識一批交換機、消息隊列和相關對象

虛擬主機是共享相同的身份認證和加密環(huán)境的獨立服務器域

每個vhost本質上就是一個mini版的RabbitMQ服務器,擁有自己的隊列、交換器、綁定和權限機制

交換器,用來接收生產者發(fā)送的消息并將這些消息路由給服務器中的隊列

消息隊列,用來保存消息直到發(fā)送給消費者

它是消息的容器,也是消息的終點

一個消息可投入一個或多個隊列

消息一直在隊列里面,等待消費者連接到這個隊列并將它取走

綁定,用于消息隊列和交換機之間的關聯(lián)

一個綁定就是基于路由鍵將交換機和消息隊列連接起來的路由規(guī)則,所以可以將交換器理解成一個由綁定構成的路由表

信道,多路復用連接中的一條獨立的雙向數(shù)據(jù)流通道

信道是建立在真實的TCP連接內地虛擬鏈接,AMQP命令都是通過新到發(fā)出去的,不管是發(fā)布消息、訂閱隊列還是接收消息,這些動作都是通過信道完成的,為了復用一條TCP連接

網(wǎng)絡連接,例如一個TCP連接,可以有多個

消息的生產者

也是一個向交換器發(fā)布消息的客戶端應用程序

消息的消費者

表示從一個消息隊列中取得消息的客戶端應用程序

消息,它是由消息頭和消息體組成

消息體是不透明的,而消息頭則是由一系列的可選屬性組成

這些屬性包括如下參數(shù)

市面上都有哪些 MQ ?

那么我們?yōu)樯哆x擇 RabbitMQ ?

咱們來看看 RabbitMQ 的特點

RabbitMQ 使用了 持久化、傳輸確認、發(fā)布確認 等 機制來保證可靠性

在消息進入隊列之前,通過Exchange來路由消息

對于典型的路由功能,RabbitMQ 已經(jīng)提供了一些內置的Exchange來實現(xiàn)

對于復雜的路由功能,RabbitMQ 可以將多個Exchange綁定在一起,也通過插件機制實現(xiàn)自己的Exchange

多個 RabbitMQ 服務器可以組成一個集群,形成一個邏輯 Broker

RabbitMQ 隊列可以在集群中的機器上進行鏡像,使得在部分節(jié)點出問題的情況下隊列仍然可用

幾乎支持所有常用語言,比如Java、.NET、Ruby、GO

提供了易用的用戶界面,使得用戶可以監(jiān)控和管理消息 Broker

如果消息異常,RabbitMQ 提供了消息的跟蹤機制,使用者可以找出具體發(fā)生了什么

提供了許多插件,來從多方面進行擴展,也可以編輯自己的插件

RabbitMQ 的六種工作模式

圖片來源于 RabbitMQ 官方文檔 https://www.rabbitmq.com/getstarted.html

simple 簡單模式

簡單的消息生產者和簡單的消費者的關系,生產者生產消息,放到隊列中,消費中消費隊列中的消息

消息被拿走后,自動從隊列中刪除

work 工作模式

多個消費端消費同一個隊列中的消息,隊列采用輪詢的方式將消息是平均發(fā)送給消費者,此處的資源是競爭關系

消費者C1,消費者C2,同時監(jiān)聽同一個隊列

消息被消費者C1,C2共同爭搶當前的消息隊列內容,誰先拿到誰負責消費消息

這里就會有這樣的問題,同一個消息會被不同的消費者都消費掉,我們需要處理這種問題

可以設置一個開關,syncronize,保證一條消息只能被一個消費者使用

publish/subscribe 發(fā)布訂閱模式

publish/subscribe 發(fā)布訂閱模式 , 相對于Work queues模式多了一個交換機,此處的資源是共享的

生產端先把消息發(fā)送到交換機,再由交換機把消息發(fā)送到綁定的隊列中,每個綁定的隊列都能收到由生產端發(fā)送的消息

routing 路由模式

大致涉及的流程如下:

生產者處理流程:

聲明隊列并聲明交換機 -> 創(chuàng)建連接 -> 創(chuàng)建通道 -> 通道聲明交換機 -> 通道聲明隊列 -> 通過通道使隊列綁定到交換機并指定該隊列的routingkey(通配符) -> 制定消息 -> 發(fā)送消息并指定routingkey(通配符)

消費者處理流程:

聲明隊列并聲明交換機 -> 創(chuàng)建連接 -> 創(chuàng)建通道 -> 通道聲明交換機 -> 通道聲明隊列 -> 通過通道使隊列綁定到交換機并指定routingkey(通配符) -> 重寫消息消費方法 -> 執(zhí)行消息方法

Topics 模式實際上是路由模式的一種

他倆的最大的區(qū)別是 : Topics 模式發(fā)送消息和消費消息的時候是通過通配符去進行匹配的

通配符有如下注意點:

RPC 模式

RPC 遠程過程調用,客戶端遠程調用服務端的方法 ,使用 MQ 可以實現(xiàn) RPC 的異步調用

這是基于Direct交換機實現(xiàn)的,流程如下:

總結

參考資料:

RabbitMQ Tutorials

歡迎點贊,關注,收藏

朋友們,你的支持和鼓勵,是我堅持分享,提高質量的動力

好了,本次就到這里

技術是開放的,我們的心態(tài),更應是開放的。擁抱變化,向陽而生,努力向前行。

我是小魔童哪吒,歡迎點贊關注收藏,下次見~

關鍵詞:基本

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉