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

更新 發佈閱讀 4 分鐘
raw-image

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
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
我們在「【Message Queue - Kafka】串流時代的超入門簡介」有介紹到關於Kafka的基礎概念, 那麼本章節主要著重於生產者(Producer)的面向來細部探討, 看看生產者(Producer)究竟是什麼? 有哪些應該要注意的? 我們今天的主題除了說明生產者(Producer)的
Thumbnail
我們在「【Message Queue - Kafka】串流時代的超入門簡介」有介紹到關於Kafka的基礎概念, 那麼本章節主要著重於生產者(Producer)的面向來細部探討, 看看生產者(Producer)究竟是什麼? 有哪些應該要注意的? 我們今天的主題除了說明生產者(Producer)的
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
這篇文章介紹了路由器 (Router) 在網絡硬體中的功能與運作概念,包括路由器的工作原理、運作流程和與其他硬體設備的區別。文章也提及了路由器運作的基本概念,例如路由表的建立方式和路由協定的基礎知識。
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上Kafka的特性是生產者與消費者並不能直接溝通, 因
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上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
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
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
Thumbnail
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News