Googleの公式ドキュメントや個人ブログを読んで「Pub/Sub」に関してわかったことをまとめていきます。
Pub/Subとは
まずpubはpublisher、subはsubscriberの略です。そしてPub/SubはGCPのイベントを生成するサービスとイベントを受け取り処理するサービスを切り分けることを可能にする非同期メッセージサービスです。メッセージングミドルウェアといったりもするようです。
Pub/Subの主要な用語
Pub/Subの理解する上で重要な用語が公式ドキュメントにまとめられていたのでそれぞれまとめておきます。
用語 | 意味 |
---|---|
Topic | publisherによって送信されるメッセージの名前付きリソース |
Subscription | 最終的にsubscriberに届けられる単一で特定のTopicからのメッセージのストリームを表す名前付きリソース |
Message | publisherがTopicに対して送信、最終的にsubscriberに配達される集合データとオプションの属性 |
Message attribute | publiserがメッセージに対して定義することができるkeyとvalue |
PublisherとSubscriber間のデータフロー
まず初め、Publisherであるアプリケーションはメッセージを作成します。そしてPub/Sub CloudにTopicを作成し、Topicに対してそのメッセージを送信します。ちなみに送信されたメッセージはSubscriberがSubsriptionからメッセージを消費する(受け取る)まで保持されることが保証されています。次にPub/Sub CloudはTopicのメッセージを該当するSubscriptionに転送します。SubscriberはPub/Sub CloudがメッセージをSubscriberが受け取ると設定したエンドポイントに転送したのを読みに行ったり、Subscriptionからpullしたりすることでメッセージを受け取ることができます。Subscriberはメッセージを受け取るごとにPub/Sub Cloudに対して応答確認をします。この応答確認がおわるとPub/Sub Cloudは確認済みメッセージをSubscriptionのキューから削除して、一連のフローが終了します。
Pub/Subのチュートリアル
実際にTopicとSubscriptionを作成して、チュートリアル内容に通りに手を動かしてみるのもおすすめです。
https://cloud.google.com/pubsub/docs/building-pubsub-messaging-system
参考文献: