コンテンツにスキップ

NATSコネクタ

NATSコネクタは、NATSサーバーまたはクラスタ上でのパブリッシュ/サブスクライブメッセージングを可能にし、オプションでトークンまたはJWT credentialsファイル認証をサポートします。

コネクタタイプ:

  • NatsReader - サブジェクトをサブスクライブ
  • NatsWriter - サブジェクトにパブリッシュ

サブジェクトをサブスクライブ:

{
"type": "NatsReader",
"config": {
"url": "nats://localhost:4222",
"subject": "sensors.temperature"
}
}

負荷分散のためのキューグループ

Section titled “負荷分散のためのキューグループ”

queueが設定されている場合、NATSは同じキューグループ内のすべてのリーダー間でメッセージを分散し、各メッセージを受信するサブスクライバーは1つだけになります:

{
"type": "NatsReader",
"config": {
"url": "nats://nats.example.com:4222",
"subject": "factory.events.>",
"queue": "meddle-workers"
}
}
{
"type": "NatsReader",
"config": {
"url": "nats://nats.example.com:4222",
"subject": "secure.events",
"token": "s3cr3t-token"
}
}

JWT Credentialsファイル(NATS NGS / 分散認証)

Section titled “JWT Credentialsファイル(NATS NGS / 分散認証)”
{
"type": "NatsReader",
"config": {
"url": "tls://connect.ngs.global:4222",
"subject": "events.>",
"credsFile": "/etc/meddle/nats.creds"
}
}

サブジェクトにパブリッシュ:

{
"type": "NatsWriter",
"config": {
"url": "nats://localhost:4222",
"subject": "processed.events"
}
}
{
"type": "NatsWriter",
"config": {
"url": "tls://connect.ngs.global:4222",
"subject": "processed.events",
"credsFile": "/etc/meddle/nats.creds"
}
}
  • url: NATSサーバーURL(nats://host:portまたはtls://host:port)。クラスタURLはカンマ区切り
  • subject: サブスクライブまたはパブリッシュするサブジェクト(Readerでは*および>ワイルドカードをサポート)
  • queue: (Reader)負荷分散配信のためのキューグループ名
  • token: (オプション)トークン認証用のトークン
  • credsFile: (オプション)JWT/nkey認証用のNATS credentials(.creds)ファイルへのパス

サブジェクトワイルドカード(Readerのみ)

Section titled “サブジェクトワイルドカード(Readerのみ)”

NATSサブジェクトはドット区切りです。ワイルドカード:

  • *は正確に1つのトークンにマッチ:sensors.*.temperature
  • >は1つ以上の末尾トークンにマッチ:factory.events.>

キューグループは、外部調整なしでNATSネイティブの水平スケーリングを提供します:

  • 同じqueueを持つ複数のリーダーはメッセージストリームを共有します。各メッセージはグループ内の正確に1つのサブスクライバーに配信されます。
  • 異なるキュー名(またはキューなし)を持つ複数のリーダーは、それぞれすべてのメッセージの完全なコピーを受け取ります。

コネクタは以下の順序で設定から資格情報を選択します:

  1. credsFileが設定されている場合、NATSユーザー資格情報(JWT + nkeyシード)を使用
  2. tokenが設定されている場合、トークン認証を使用
  3. それ以外の場合、接続は匿名

再接続は2秒のバックオフと無制限の再試行で自動的に行われます。

  • MQTT - IoTデバイス用のパブ/サブ
  • Kafka - 永続的なログベースメッセージング
  • AMQP - RabbitMQパブ/サブの代替