GCPのPub/Subとは何か調べてまとめた

thumnail
2020-12-17

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

参考文献: