iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
Software Development

Event driven architecture的奧妙系列 第 23

Day 23 Event Broker v.s Message Queue

  • 分享至 

  • xImage
  •  

前言

前幾天我們分別講了什麼是Event Broker、Message Queue,讓大家了解Event Broker和Message Queue是兩種相似但又不相同的design pattern。
分別用在routing event和傳遞訊息,儘管他們的優點以及特性有些相似,但仔細研究後會發現他們在功能面和適用的情境上有蠻大的不同。

今天我們開一篇來比較彼此的不同點在哪((好像又歪樓了 抓頭
好了~讓我們開始吧!

Event Broker

Event Broker為一種用於管理routing event的design pattern,適用在event driven architecture。

前面的Event Broker篇有提過它的適用場景:

  • 及時的數據處理
  • 微服務(Microservices)的架構
  • Event Driven Architecture

Event Broker的整體流程包含了event的routing、distribution等多個重要的步驟,能保證EDA有效率的運作,提升系統的靈活度,同時也能確保資料的同步,確保資料的一致性。

Message Queue

Message Queue主要專注在訊息的儲存傳遞的一種design pattern。

昨天有提到MQ的適用情景:

  • Asynchronous的任務
  • 需要保證訊息有順序性的任務

Event Broker vs Message Queue

我們為各位整理出兩個設計模式不同之處的表格,給大家作為參考。

特性 Event Broker Message Queue
目的 event的管理和分送 訊息的傳遞
event的儲存 一般不支援event持久化 支援訊息持久化
傳遞方式 event的publish/subscribe 訊息的傳遞
延遲性 延遲性低 延遲性較高
擴展性 擴展性高 擴展性高
event的處理 支援event給多個subscriber處理 單一subscriber處理
event的順序 不保證event的處理順序 保證訊息的處理順序
適用場景 EDA, Microservices Asynchronous處理
典型技術 Kafka, NATS RabbitMQ, Amazon SQS

總結

Event Broker和Message Queue各自有優缺點以及適用的場景,相比於Message Queue適合可靠訊息的傳遞,Event Broker更適合在即時的處理和event的管理上。根據使用者的需求討論適合的design pattern是團隊需要好好討論以及衡量的地方。
本篇用表格讓大家明確的了解兩者之間的區別~
明天開始進入NATS篇~
好了~今天就到這邊!


上一篇
Day 22 - Message Queue
下一篇
Day 24 Event Broker的法寶: NATS - 介紹
系列文
Event driven architecture的奧妙30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言