iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0

前言

前兩天我們講到Event Driven Architecture的黑魔法Event Broker,說明了它的優點,也探討內部是如何運作的。
今天我們來講跟Event Broker很像,但應用場景與機制不太一樣的另一種design pattern,Message Queue (MQ)。

常常會把他們兩個搞混,以為在講同一個設計模式,實際是不同的設計思路。
今天就讓我們好好講MQ到底在做什麼吧。

好~ 讓我們開始吧!

Message Queue

Message Queue(MQ)可說是Pub-Sub模式衍生出來的一種design pattern,主要的目的是用來儲存傳遞訊息。MQ提供了Asynchronous的方式傳遞訊息,來確保訊息的順序性持久性,等subscriber提取了這份訊息,MQ才會把訊息刪除,否則訊息會一直留在MQ裡

https://ithelp.ithome.com.tw/upload/images/20241006/20169096COOSZ1WJFl.jpg

MQ的功能有以下幾個:

  • 訊息的儲存: 訊息或event會被儲存在MQ裡,等待subscriber提取
  • 有順序的傳送: 支援訊息或event是按順序處理的,保證publisher生成的event有順序的被subscriber提取

Message Queue適用場景

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

Message Queue常見的技術

  • RabbitMQ
  • Apacha Kafka
  • Amazon SQS

總結

雖然Message Queue與Event Broker的功能聽起來很像,但相比於Event Broker專注在event上的處理,Message Queue則是專注在訊息的儲存和傳遞,兩者關注的點不同。當在設計系統的時候,團隊需要多加考量。

好了~今天就到這邊!!

Reference

-[基礎觀念系列] 讓任務排隊吧:Message Queue — (1)


上一篇
Day 21 - Event Driven的黑盒子 - Event Broker後篇
下一篇
Day 23 Event Broker v.s Message Queue
系列文
Event driven architecture的奧妙30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言