Ir al contenido

Conector NATS

El conector NATS habilita mensajería de publicación/suscripción en un servidor o clúster NATS, con autenticación opcional mediante token o archivo de credenciales JWT.

Tipos de Conector:

  • NatsReader - Suscribirse a un sujeto
  • NatsWriter - Publicar en un sujeto

Suscribirse a un sujeto:

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

Cuando queue está definido, NATS distribuye los mensajes entre todos los lectores del mismo grupo de cola, de modo que sólo un suscriptor recibe cada mensaje:

{
"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"
}
}

Archivo de Credenciales JWT (NATS NGS / Autenticación Descentralizada)

Sección titulada «Archivo de Credenciales JWT (NATS NGS / Autenticación Descentralizada)»
{
"type": "NatsReader",
"config": {
"url": "tls://connect.ngs.global:4222",
"subject": "events.>",
"credsFile": "/etc/meddle/nats.creds"
}
}

Publicar en un sujeto:

{
"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: URL del servidor NATS (nats://host:puerto o tls://host:puerto); separa por comas para URLs de clúster
  • subject: Sujeto al que suscribirse o publicar (admite los comodines * y > en el lector)
  • queue: (Lector) Nombre del grupo de cola para entrega con balanceo de carga
  • token: (Opcional) Token para autenticación por token
  • credsFile: (Opcional) Ruta a un archivo de credenciales (.creds) NATS para autenticación JWT/nkey

Los sujetos NATS están separados por puntos. Comodines:

  • * coincide con exactamente un token: sensors.*.temperature
  • > coincide con uno o más tokens finales: factory.events.>

Los grupos de cola permiten escalado horizontal nativo de NATS sin coordinación externa:

  • Múltiples lectores con la misma queue comparten el flujo de mensajes; cada mensaje va a exactamente un suscriptor del grupo.
  • Múltiples lectores con nombres de cola diferentes (o sin cola) reciben cada uno una copia completa de cada mensaje.

El conector elige las credenciales de la configuración en este orden:

  1. credsFile si está definido, usando credenciales de usuario NATS (JWT + semilla nkey)
  2. token si está definido, usando autenticación por token
  3. De lo contrario, la conexión es anónima

La reconexión es automática con un backoff de 2 segundos y reintentos ilimitados.

  • MQTT - Pub/sub para dispositivos IoT
  • Kafka - Mensajería duradera basada en log
  • AMQP - Alternativa pub/sub RabbitMQ