Pub/Sub(出版購読)
Publish/Subscribe/ぱぶさぶ
ひとことで言うと
送り手と受け手を直接つながず、出来事の通知を間に立つ仲介役から多数へ配る方式です。
📖 もうちょい詳しく
何が新しいの?
サービスが大きくなると、たくさんのプログラムどうしが連絡を取り合うようになります。そのとき送り手が受け手をひとつずつ知っていると、つなぎ方がどんどん複雑になります。Pub/Subは、送り手と受け手を直接つながずに通知を配ることで、この絡まりを減らす考え方です。
どうやって動いてるの?
送り手(Publisher、発行する側)は「こういう出来事が起きました」というメッセージを、間に立つ仲介役(メッセージブローカー)に渡します。受け手(Subscriber、購読する側)は、あらかじめ「このトピック(話題のまとまり)を受け取りたい」と登録しておきます。すると仲介役が、そのトピックに登録している受け手すべてにメッセージを配ってくれます。送り手は受け手が誰かを知らなくてよいのが特徴です。
何ができるの?
ひとつの出来事を、複数の処理に同時に伝えられます。たとえば「注文が入った」という通知から、在庫を減らす処理・メールを送る処理・売上を記録する処理を並行して動かせます。あとから受け手を増やしても、送り手のプログラムは直す必要がありません。
🌱 身近なたとえ
雑誌の定期購読で例えると分かりやすいです。読者(受け手)は出版社に「この雑誌をください」と申し込んでおきます。出版社(仲介役)は新しい号が出るたびに、申し込んだ読者全員へ届けます。書き手(送り手)は、誰が読んでいるかをいちいち知らなくても記事を出せます。Pub/Subもこれと同じで、間に配る人がいるおかげで送り手と受け手が直接知り合わずに済みます。
✅ まず覚えるポイント
- 送り手(Publisher)と受け手(Subscriber)を直接つながない方式です。
- 間に立つ仲介役(ブローカー)が通知を配ります。
- トピックという話題のまとまりごとに、受け取る相手が決まります。
- ひとつの通知を多数の受け手に同時に配れます。
- 受け手を増やしても送り手を直さなくてよく、規模を広げやすいです。
🧭 よくある勘違い
キュー(待ち行列)と同じもの?
似ていますが向きが違います。キューは多くの場合、1つのメッセージを1人の受け手が取り出して処理します。Pub/Subは1つの通知を登録済みの受け手すべてに配るのが基本です。「1対1で渡す」のがキュー、「1対多に広める」のがPub/Subと覚えると整理しやすいです。
受け手が止まっていたらメッセージは消える?
仕組みによります。受け手が起きている間だけ配るものもあれば、いったん貯めておいて後から渡せるものもあります。確実に届けたいときは、貯めておける設定や仕組みを選ぶことが多いです。
🧩 関連して覚えると楽な言葉
- メッセージキュー: メッセージを順番に並べて1人ずつ渡す仕組み。Pub/Subと対で語られます。
- Webhook: 何かが起きた瞬間に自動でお知らせを飛ばす仕組み。Pub/Subと同じく出来事をきっかけに動きます。
- マイクロサービス: 機能を小さく分けて作る構成。Pub/Subで疎結合につなぎます。
- 非同期処理: 相手の完了を待たずに先へ進める考え方。Pub/Subはこの非同期な連携を支えます。
🏁 ひとことでまとめ
「誰に届くか」を送り手が気にしなくていいように、間に配り役を立てて通知を広める。それがPub/Subです。
TERM SEARCH
ほかの用語を調べる
検索ボックスを準備中…