Pub/Subの概要を思い出すための自分用メモ。
概要
Cloud Pub/SubはGCPが提供するメッセージングサービスである。
メッセージングサービスとは
- システムから別システムへのデータの送受信を、プログラミング言語、プラットフォームを超えて実現する仕組み
- システム間を疎結合にして、1システムで問題が発生したとき、全体に波及するのを防ぐ
- 非同期処理を実現できる
- 送信側は受信側の処理を待たなくていい
- 受信側は処理可能なタイミングで処理できる
メッセージングサービスにおける用語
publisher
データ送信側のシステム
subscriber
データ受信側のシステム
topic
メッセージングサービスの機能。
publisherがデータを送信する窓口。
subscription
メッセージングサービスの機能。
あらかじめ施された設定(以下、例)に基づいて、topicに届いたデータをどうsubscriberに送信する機能。
- データの保存期間
- subscription自体の有効期間
- データの再送信間隔
- データの送信順
- データ送信失敗時の試行回数
- データ送信失敗の記録間隔(試行回数)
- メッセージングサービスからsubscriberへのPUSH型送信にするか、subscriberからメッセージングサービスへデータを取りに来てもらうPULL型送信にするか
メッセージングサービスを利用したデータ送信の処理イメージ
システムAからシステムBへデータを送信する場合
====================================================================
システムA(Publisher)
1. Topicを指定してメッセージングサービスへデータを送信
====================================================================
↓
↓ [データ]
↓
====================================================================
メッセージングサービス
↓
-------------------------------------------------------
Topic
2. Publisherから送信されたデータを受信して保存
-----------------------------------------------------
|Subscription
|
| 3. Topicで受信したデータを設定に基づいてSubscriberへ送信
-------------------------------------------------------
↓
↓ [データ]
↓
====================================================================
システムB(Subscriber)
4. メッセージングサービスのSubscriptionからデータを受信
※PULL型のsubscription設定の場合は、自分からPub/Subへデータを取りに行く必要あり
====================================================================
参考