【ナッツ】

NATS とは?

💡 マイクロサービス同士をつなぐ、超高速な伝言板
📌 このページのポイント
NATS — 軽量メッセージングの3つのパターン NATS Server Pub/Sub Publisher Sub A Sub B Request/Reply Requester Responder Queue Group(負荷分散) Worker 1 Worker 2 どちらか1つに振り分け
NATSの3つのメッセージングパターン:Pub/Sub・Request/Reply・Queue Group
ひよこ ひよこ

NATSってKafkaみたいなやつ?

ペンギン先生 ペンギン先生

似たメッセージングシステムだけど、NATSはとにかく軽量で高速なのが特徴だよ。Kafkaが「大量データの永続保存・集計」向きなのに対して、NATSは「リアルタイムな通知や呼び出し」に向いてるんだ。

ひよこ ひよこ

Pub/Subって何なの?

ペンギン先生 ペンギン先生

Publisherがメッセージを送信して、そのトピックをSubscribeしている全員が受け取るパターンだよ。「お知らせメール」みたいなイメージだね。

ひよこ ひよこ

Request/Replyって名前から想像できるけど、それってただのHTTPと何が違うの?

ペンギン先生 ペンギン先生

HTTPURLで宛先を指定するけど、NATSのRequest/Replyはトピック名で通信するんだ。サービスがどこにあるか意識しなくていいから、マイクロサービスの動的なスケールアップに対応しやすいよ。

ひよこ ひよこ

JetStreamって最初から使えるの?

ペンギン先生 ペンギン先生

NATSはデフォルトではメッセージを保存しないけど、JetStreamを有効にするとメッセージの永続化・再配信・処理済み確認(ACK)が使えるようになるよ。Kafkaに近い使い方もできるんだ。

ひよこ ひよこ

どんな場面でNATSを選ぶといいの?

ペンギン先生 ペンギン先生

KubernetesサービスメッシュIoTデバイスの通知など、低レイテンシが重要な場面に向いてるよ。設定がシンプルで、Goで書かれているから軽量に動くのも選ばれる理由のひとつだね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「NATS」って出てきたら「マイクロサービスや分散システム向けの軽量メッセージングツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「NATS (Neural Autonomic Transport System)」 = 神経自律輸送システム
💬 神経系が体内で素早くシグナルを伝えるように、サービス間でメッセージを高速に届けることを目指した名前なんだよ
← 用語集にもどる