新手實戰 RabbitMQ:Producer、Exchange、Queue 和 Consumer 的基本介紹

更新 發佈閱讀 4 分鐘
vocus|新世代的創作平台

RabbitMQ 是一套基於 AMQP(Advanced Message Queuing Protocol) 協定開發的開源應用,其核心的概念就是接收消息、暫存消息、最後將訊息傳遞到 Consumer。簡單來說,我們可以把它想像成是寄放信件的郵局,郵局會負責收取信件、妥善保管,然後再將信件派發給收件人。

其中「Consumer」這個詞彙可能會讓讀者感到疑惑,下面將會逐步說明 RabbitMQ 中常用的專有名詞與運作機制,幫助大家更清楚理解其實際應用。


RabbitMQ 存在著幾種機制,在了解這接機制之前,先來介紹一些名詞所表達的概念:

  • Producer
  • Exchange
  • Queue
  • Consumer

- Producer

Producer 負責建立訊息,並且傳送到 Queue 內,其來源可能是程式或任何產生訊息的應用。在大部分的設計上,訊息會先經過 Exchange,再由 Exchange 進行分發。

從 Producer 的角度來看,它的任務僅限於將訊息傳遞給 Queue 或 Exchange,後續任何的分發就與它無關。

- Exchange

在特定架構中,Exchange 會接收 Producer 發送的訊息,並根據訊息中的 Routing key 及 Exchange 類型 (如 direct、topic、fanout 等) 來決定將訊息路由到一個或多個 Queue。

*如果沒有符合條件的 Queue,即使訊息傳送給 Exchange,最終也不會被分發到 Queue

- Queue

又稱為 Message Queue,負責儲存來自 Producer 或 Exchange 的訊息。這些訊息遵循 FIFO(First In First Out, 先進先出) 的規則,由 Consumer 主動拉取並進行處理。即使沒有任何 Consumer 在線,訊息仍會被妥善保存,直到被取用為止。

*這邊要特別注意 Queue 不會主動發送任何訊息,而是等待 Consumer 來做處理

- Consumer

Consumer 會從訂閱的 Queue 中拉取訊息並進行處理。處理完成後,通常會發送回執訊息,通知 RabbitMQ 可以將該訊息從 Queue 中移除。這個過程代表 RabbitMQ 的最後階段,完成了訊息的接收、暫存直到最終處理。

資料來源 - https://jstobigdata.com/

資料來源 - https://jstobigdata.com/


在初步了解 RabbitMQ 後,會發現它是一種暫存訊息的應用,有實務經驗的讀者可能會覺得它與 Redis 相似,兩者也確實常被拿來比較,但在實際應用上它們存在著顯著差異。Redis 更偏向快取機制,其儲存於記憶體中,儲存空間較小,主要用於短期操作;相較之下,RabbitMQ 能夠儲存較大的訊息,並且可以存放更長時間,更適合需要持久化訊息的場景。​

本篇提供 RabbitMQ 的基礎概念,下篇『新手實戰 RabbitMQ:RabbitMQ 安裝與 Server 建立』中會有更深入的介紹。

留言
avatar-img
Alan的沙龍
1會員
12內容數
不定期技術文章、旅遊、人生見解分享
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
我們在「【Message Queue - Kafka】串流時代的超入門簡介」有介紹到關於Kafka的基礎概念, 那麼本章節主要著重於生產者(Producer)的面向來細部探討, 看看生產者(Producer)究竟是什麼? 有哪些應該要注意的? 我們今天的主題除了說明生產者(Producer)的
Thumbnail
我們在「【Message Queue - Kafka】串流時代的超入門簡介」有介紹到關於Kafka的基礎概念, 那麼本章節主要著重於生產者(Producer)的面向來細部探討, 看看生產者(Producer)究竟是什麼? 有哪些應該要注意的? 我們今天的主題除了說明生產者(Producer)的
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
Thumbnail
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上Kafka的特性是生產者與消費者並不能直接溝通, 因
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上Kafka的特性是生產者與消費者並不能直接溝通, 因
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
連接器故名思議就是兩個系統之間的橋樑, 而Kafka Connect正是扮演著這樣的角色, 如圖上, 我們可以透過Kafka Connect將SQL的資料導出到Kafka並導入到MySQL。 豐富的Plugin Confluent Hub提供了各式各樣的外掛套件, 包括了MongoDB、My
Thumbnail
連接器故名思議就是兩個系統之間的橋樑, 而Kafka Connect正是扮演著這樣的角色, 如圖上, 我們可以透過Kafka Connect將SQL的資料導出到Kafka並導入到MySQL。 豐富的Plugin Confluent Hub提供了各式各樣的外掛套件, 包括了MongoDB、My
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News