Google Cloud Pub/Subの登場人物と役割を整理してみました

GCP

はじめに

前回のエントリ に引き続き、 Google Cloud Pub/Sub の学習を進めてわかった登場人物とその役割について整理してみました。

参考ページ

登場人物

  • Publisher(パブリッシャー)
  • Topic(トピック)
  • Subscription(サブスクリプション)
  • Subscriber(サブスクライバー)

そして、上記4つの登場人物たちの間を流れていくものとして Message(メッセージ) があります。

Publisher(パブリッシャー)

  • メッセージの送信元

Topic(トピック)

  • "Cloud Pub/Sub" サービスの内部要素です。
  • メッセージの送信元である Publisher に対する コネクター として理解しました。
  • TopicとPublisherは必ず 1:1 となります。

Subscription(サブスクリプション)

    • "Cloud Pub/Sub" サービスの内部要素です。
  • メッセージの受信先である Subscriber に対する コネクター として理解しました。

Subscriber(サブスクライバー)

  • メッセージの受信先

メッセージ伝達のイベントキューはどの単位?

公式サイトの上記の図だけでは、 メッセージイベントは Tppic 単位にキューイングされるのか?

と思いましたが、よくよく文章を読んでみると Subscription 単位にキューイングされているようです。
当然ですよね。そうしないとそれぞれのSubscriberにイベントが伝達されませんもんね。

SubscriptionからSubscriberへのメッセージ伝達の方法は2つ

Push 方式と Pull 方式が利用できます。

Push 方式 : Subscription からみて Push を行う

Publisher ->Topic: Message
Topic->Subscription: Message
Subscription->Subscriber: POST(Message)

Pull 方式 : Subscriber からみて Pull を行う

Publisher ->Topic: Message
Topic->Subscription: Message
Subscriber->Subscription: GET(Message)

効率が良いのは Push 方式でしょうが、 Subscriber がオンプレ環境にいる、外部からのInboundな通信が許可されていない、Webサービスとして公開する実装になれていないといった場合は、 Pull 方式を選択するしかないかと思います。

ひとこと

1つのSubscriberに対して2つのSubscriptionを連結した方式をとったことはないですが、これは Subscriber で制御する必要があるってことですよね。

GCP