Pub/Sub 是非同步的 Message Service 主要是為了實踐高可用和可擴縮的服務,十多年來 Google 許多的核心服務都是基於 Pub/Sub 的架構搭建而成的。包括Google Ads、Google Search、Gmail 等Google 的產品,這些產品每秒發送超過 5 億的 Message 大小超過 1TB,可見 Pub/Sub 是能夠可靠的實現這些業務的。
Pub/Sub 是一套透過 Message 的提供方和使用方(Publisher、Subscriber)組成的系統,其中Publisher跟 Subscriber 是分離的,雙方通過非同步的方式進行 Message 的傳送
PubSub 主要由以下元件組成
大致說明一下 Pub/Sub的流程
Publisher 向 Pub/Sub Topic 發送 Message。
Message 寫入到存儲空間。
在將 Message 寫入存儲空間時,Pub/Sub 會將 Message 傳遞到該 Topic 的所有附加Subscription。
在此範例中,它是單個 Subscription。
Subscription 將 Message 發送到附加的 Subscriber。
Subscriber 向 Pub/Sub 發送確認,表明他們已處理該 Message。
在每個 Subscription 的至少一個 Subscriber 確認 Message 後,Pub/Sub 會從存儲空間中刪除該 Message。