Pub/Sub
Pub/Subは、 サーバーレスかつフルマネージドな非同期のメッセージングサービス
Pub/Sub を理解する前に...
メッセージングサービスって何??
メッセージ(データ)を送る側と受け取る側の間の中継装置。
データ送る側と受け取る側が、この中継装置(メッセージングサービス)によって分離されている。
https://gyazo.com/a8c4cfc2e8f9ab8584f86c7bed5d0a28
逆にメッセージングサービスが無いとどうなる??
https://gyazo.com/3fc5196208a9df52190f4d00e142b9ef
メッセージングサービスが無いと困ること
各データをそれぞれの媒体に対して送る必要があり、めちゃ複雑になる。イメージ図でいうと、APログをBI,リアルタイム処理基盤,ユーザー,長期保存基盤の4つ全部にそれぞれ送らないといけない。
ここから更に、接続先を増やしたい時、設定や管理まで複雑になり大変。
データの受け手の状態次第ではデータを消失してしまうリスクがある。
Pub/Subの基本構成
https://gyazo.com/b8c98e8ef75dd189d57e40c2899eafb3
https://gyazo.com/7a2bf6c85a5809a84f5f6a254cea547d
パブリッシャー(Publisher):メッセージ(データ)を作成してトピックに送信するアプリケーション(データの送り手)
publish:メッセージを送信すること
トピック(Topic):パブリッシャーによるメッセージの送信先となるリソース。これがサブスクリプションに届いたメッセージを送信する。
サブスクリプション(Subscription):届いたメッセージを管理し、サブスクライバーにメッセージを送る。サブスクライバーに送信するメッセージの設定はここに追加する。
設定の例:メッセージの送信タイプ(pushまたはpull)を選択したり、サブスクライバーが未確認のメッセージをどのくらいの期間保管するか、送信するメッセージ内容をコントロールできる。
サブスクライバー(Subscriber):メッセージを受信するアプリケーション(データの受け手)
subscribe:メッセージを受け取ること。
確認応答(Ack):サブスクライバーがメッセージを受信したら、確認情報をサブスクリプションに返す
メッセージを受信したことを保証する仕組みであり、確認応答がサブスクリプションに返されると、ストレージ内の送信したメッセージを削除する。