【ナッツ】

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)」 = 神経自律輸送システム
💬 神経系が体内で素早くシグナルを伝えるように、サービス間でメッセージを高速に届けることを目指した名前なんだよ
← 用語集にもどる