「訊息不迷路:為什麼我們需要 Message Queue、Message Broker 與 Event Broker?」

更新於 發佈於 閱讀時間約 6 分鐘

隔了兩年多沒有在部落格留下文字,這段時間因為工作異常忙碌,卻也收穫頗多。除了累積更多的專案實戰經驗外,也在日常中不斷摸索與學習,特別是在 大規模資料流處理 以及 高併發服務的開發與維護 上,都有了更深的體會。

今天想和大家聊聊我近期在系統設計上常碰到的一個重要主題 —— 事件驅動架構 (Event-Driven Architecture, EDA) 中經常被使用與討論的兩項技術:Message Queue 與 Event Broker

在提到 Message Queue 之前,我們需要先知道甚麼是「Queue」。

Queue (佇列) 是電腦科學中一個常見的資料結構,它的特性是 FIFO (First-In-First-Out,先進先出),也就是最先進入佇列的資料,會最先被取出處理。這樣的行為就像日常生活中排隊買東西一樣:先排隊的人先被服務。

在分散式系統與應用整合中,Message Queue 正是基於這樣的概念設計,用來可靠地處理訊息傳遞,讓不同服務之間能夠解耦合、平衡流量、並避免資料遺失。

raw-image

那甚麼是 Message Queue 與 Message Broker 呢?

訊息佇列(Message Queue,MQ),本質就是個佇列,具有 FIFO (First-In-First-Out) 先入先出的特性,只不過佇列中存放的內容不是物件、檔案,而是message。

其主要用途可以在不同服務、不同程序或不同執行緒之間更有效地處理資料流。

而為了讓開發者能更專注在程式邏輯的撰寫上,目前已經有許多第三方服務提供了 Message Queue 的能力,我們通常將這類服務稱為 Message Broker

換句話說,像是 訊息的儲存、重試機制、可靠傳遞 等細節,我們不需要再從零實作,因為這些 Message Broker 本身就已經內建了相應的功能。

常見的例子包括 Azure Service BusRabbitMQ 等,它們都能幫助我們快速構建穩定的訊息傳遞管道。

除此之外,這些 Message Broker 更進一步擴大以 Queue 為基礎的功能,譬如可以讓訊息被延遲傳遞(Delayed/Scheduled Message) 或是實作如在 Java 中的資料結構 PriorityQueue 的功能,可以讓訊息針對不同的優先級進行傳遞等等。

Event Broker (事件代理)

這裡我們必須了解另外一個名詞「Event Broker」。

Event Broker(事件代理)是一種 中介軟體 (Middleware),主要負責協調 事件的發布與訂閱。在事件驅動架構 (EDA) 中,Event Broker 提供基礎的訊息傳遞能力:當應用程式發佈事件時,事件會先送達 Event Broker,然後由 Event Broker 根據 訂閱規則 將事件傳遞給對應的消費者。

與 Message Broker 相比,Event Broker 除了具備基本的訊息傳遞與 Queue/Topic 支援外,還提供更進階的能力,例如:

  • 動態路由 (Dynamic Routing):支援精準、萬用字元 (wildcard)、甚至基於內容的事件過濾。
  • 事件回放 (Replay):允許消費者重新取得過去的事件。
  • 跨區域 / 多雲的事件網格 (Event Mesh)

因此,我們可以理解成:Message Broker 強調可靠傳遞,而 Event Broker 則著重在大規模的事件流處理與靈活的路由能力

常見的產品如「Solace」、「Azure Event Grid」、「Apache Kafka」等等都已經是相當成熟的工具。

那,為甚麼我們需要 Message Broker 跟 Event Broker呢?

舉例來說,在高併發的場景下,一秒鐘的 request 可能高達數十萬甚至百萬,這時候如果沒有對應的機制去處理這些流量或是同步狀態,很有可能你的服務或系統就會被打爆了,更不可能透過傳統的 Database 去處理,因為,在資料庫中,資源是固定的,例如建立時就已經決定好 CPU Core 數與記憶體容量,更不可能進行動態的水平或垂直擴展。

因此,我們需要這些 Broker 來協助處理各種高併發場景,例如 電子商務的下單流程金融交易的即時撮合,或是 IoT 裝置的大量資料上傳

透過 Message Broker 或 Event Broker 的能力,我們可以將瞬間湧入的請求進行緩衝、分流與可靠傳遞,避免後端服務因流量過載而崩潰。

這些 Broker 若能與進一步 分散式系統 (如 Kubernetes, K8s) 結合,便能發揮更高的彈性與可用性。系統不僅能夠自動擴展應對高峰流量,還能在發生故障時快速恢復,整體架構因此具備了更好的 穩定性 (Stability) 與 高可用性 (High Availability)

總結來說,Message Broker 與 Event Broker 在現代分散式系統中,已經不再只是「可有可無」的輔助,而是應對 高併發事件驅動架構 (EDA)、以及 跨系統整合 的關鍵基礎建設。


留言
avatar-img
留言分享你的想法!
avatar-img
格蘭特的沙龍
14會員
18內容數
還在為不知道怎麼面試而煩惱嗎? 還在為苦無面試機會而沮喪嗎? 別擔心~讓我們一起面對! 在專題中,我將以自身經驗傳授如何撰寫履歷以及分享面試經驗。
格蘭特的沙龍的其他內容
2023/10/26
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第八篇。 這篇將繼續分享上一篇在遊戲橘子的面試經驗。
Thumbnail
2023/10/26
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第八篇。 這篇將繼續分享上一篇在遊戲橘子的面試經驗。
Thumbnail
2023/07/18
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第七篇。 格蘭特這次要分享的是在遊戲領域中的佼佼者,自產及代理多種知名遊戲的遊戲橘子(Gamania)。 本次機會是由 Headhunter 在 LinkedIn 主動聯繫,職位是資深後端工程師。 由於篇
Thumbnail
2023/07/18
嗨!我是格蘭特,歡迎來到軟體工程師面試大哉問! 近二十家公司面試經驗大公開,本篇是系列文的第七篇。 格蘭特這次要分享的是在遊戲領域中的佼佼者,自產及代理多種知名遊戲的遊戲橘子(Gamania)。 本次機會是由 Headhunter 在 LinkedIn 主動聯繫,職位是資深後端工程師。 由於篇
Thumbnail
2023/04/06
歡迎來到格蘭特的私房好書,本文是專題系列文的第二篇。 因工作上有些事情需要處理,讓這個專題延宕了幾個月,希望大家不要見怪 :D。 今天要與大家一同閱讀的是 Annette Simmons 所著的《你的團隊需要一個會說故事的人》。 作者:Annette Simmons (安奈特.西蒙斯) 出版社:先覺
Thumbnail
2023/04/06
歡迎來到格蘭特的私房好書,本文是專題系列文的第二篇。 因工作上有些事情需要處理,讓這個專題延宕了幾個月,希望大家不要見怪 :D。 今天要與大家一同閱讀的是 Annette Simmons 所著的《你的團隊需要一個會說故事的人》。 作者:Annette Simmons (安奈特.西蒙斯) 出版社:先覺
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
KSQL引擎, 串流形式的SQL? 聽了應該霧煞煞吧! 想像一下傳統的SQL, 是不是一個指令一個動作, 每發送一個指令之後就必須等到查詢/寫入…動作皆完成之後才回應, 然而在Streaming的應用上這顯然不太可行, 每分每秒都有資料流入的情境下, 資料的狀態都在變化, 假設我們一個指令一個動作,
Thumbnail
KSQL引擎, 串流形式的SQL? 聽了應該霧煞煞吧! 想像一下傳統的SQL, 是不是一個指令一個動作, 每發送一個指令之後就必須等到查詢/寫入…動作皆完成之後才回應, 然而在Streaming的應用上這顯然不太可行, 每分每秒都有資料流入的情境下, 資料的狀態都在變化, 假設我們一個指令一個動作,
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上Kafka的特性是生產者與消費者並不能直接溝通, 因
Thumbnail
為什麼會有Schema Registry的出現? 因為Kafka的零拷貝原則, 也就是kafka本身並不會去碰觸到訊息也不進行資料驗證, 而是bypass的傳送, 預設都以位元組來傳輸資料會比較有效率, 但位元組誰看得懂啊...。 加上Kafka的特性是生產者與消費者並不能直接溝通, 因
Thumbnail
公告佈達看似簡單,但如何做好才是關鍵。 只有透過適時而有效的公告,才能確保重要訊息的及時傳達,促進員工的共識和配合 最終提升整體的運營效率,為企業持續發展注入動力!
Thumbnail
公告佈達看似簡單,但如何做好才是關鍵。 只有透過適時而有效的公告,才能確保重要訊息的及時傳達,促進員工的共識和配合 最終提升整體的運營效率,為企業持續發展注入動力!
Thumbnail
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
Thumbnail
訊息的即時傳遞已然成為現代社會的趨勢了, 而扮演中樞平台的系統架構功能也漸趨複雜完整, Kafka是一個事件流平台, 正好滿足串流時代之下的即時訊息傳遞架構, 因此我們有必要深入來學習這套事件流平台, 不論是自動化、金融交易、IOT、物流…皆離不開即時的需求, 所以就讓我們蹲好馬步來好好的學習一
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
有時候工作信件上的來來往往百百種,但不外乎就是約會議時間、討論內容、回應問題或是向對方提出要求,這邊就列出一些模擬的情境跟相關信件做為參考。
Thumbnail
有時候工作信件上的來來往往百百種,但不外乎就是約會議時間、討論內容、回應問題或是向對方提出要求,這邊就列出一些模擬的情境跟相關信件做為參考。
Thumbnail
大數據時代下,Log的多元應用至關重要。Log生成龐大,格式各異,特別金融業需合規。探討Log廣泛應用、資訊安全、IT管理和商業決策。建立Log管理系統核心深入法規,強化IT治理、權限控管。一站式Log管理平台,確保資訊安全合規。
Thumbnail
大數據時代下,Log的多元應用至關重要。Log生成龐大,格式各異,特別金融業需合規。探討Log廣泛應用、資訊安全、IT管理和商業決策。建立Log管理系統核心深入法規,強化IT治理、權限控管。一站式Log管理平台,確保資訊安全合規。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News