Publish/Subscribe Pattern
Publish/Subscribe Pattern (Pub/Sub) 簡介
- 一種包含 publisher、subscriber 與 broker 的訊息模型
- publisher - 將訊息傳送至特定 topic(也可能被稱呼為 channels),不需要擔心誰需要收到這筆消息
- subscriber - 訂閱特定 topic 後,將會收到來自此 topic 的訊息
- broker - 負責將 topic 的訊息轉發給 subscriber
- 通常有以下的保證,如「至少傳送一次」、「持久化」、「訊息的順序性」、「訊息可重送多次」
- 若相同訊息可重送多次,不會影響結果就是符合冪等性(idempotent),需要 consumer 另外實作

有哪些 Pub/Sub 服務?
這邊舉幾個服務,後續再寫一篇較詳細文章來比較之間差異
RabbitMQ
- 最廣泛使用的 message broker,特色是輕量級輕鬆部屬,但也有支援 distributed 以符合 high-scale 與 high-availability 的要求
- 點我看更多👀
Apache Kafka
- 最先是由 LinkedIn 創立的一款分散式訊息系統 (distributed messaging system),由 Scala 和 Java 編寫的 open-source 專案,點我看更多👀

- 原本的 Kafka 團隊有出雲端受託管版本的 Kafka - Confluent Cloud (Cloud Native Apache Kafka®),點我看更多👀
- 另外,AWS 也有是出自己的雲端版本的 Kafka - Amazon MSK,點我看更多
Cloud Pub/Sub
- Google 創立的雲端 Pub/Sub 服務,可用於串流服務、非同步微服務整合。點我看更多👀
參考資料 👐
- system expert
- wiki - Kafka
- publisher-subscriber pattern
🍀 最後,若喜歡我的分享,可以幫我拍拍手👏,是對我最大的鼓勵!✨