Ir al contenido

Conector AMQP

El conector AMQP habilita mensajería de publicación/suscripción a través de RabbitMQ y cualquier broker AMQP 0.9.1, con exchanges, colas y claves de enrutamiento.

Tipos de Conector:

  • AmqpReader - Consumir mensajes de una cola o vinculación a un exchange
  • AmqpWriter - Publicar mensajes en un exchange con una clave de enrutamiento

Consumir mensajes de una cola existente:

{
"type": "AmqpReader",
"config": {
"url": "amqp://guest:guest@localhost:5672/",
"queue": "sensor_events",
"autoAck": false,
"prefetchCount": 10,
"consumerTag": "meddle-reader"
}
}

Cuando queue está vacío y exchange está definido, el lector declara una cola exclusiva temporal y la vincula al exchange usando routingKey:

{
"type": "AmqpReader",
"config": {
"url": "amqp://user:password@rabbit.example.com:5672/",
"exchange": "factory.events",
"routingKey": "line1.*.temperature",
"autoAck": true
}
}
{
"type": "AmqpReader",
"config": {
"url": "amqps://user:password@rabbit.example.com:5671/",
"queue": "secure_events",
"tls": true,
"autoAck": false
}
}

Publicar mensajes en un exchange:

{
"type": "AmqpWriter",
"config": {
"url": "amqp://guest:guest@localhost:5672/",
"exchange": "factory.events",
"routingKey": "line1.temperature",
"mandatory": false,
"contentType": "application/json"
}
}

Publicar en el Exchange Por Defecto (Directamente a la Cola)

Sección titulada «Publicar en el Exchange Por Defecto (Directamente a la Cola)»

Deja exchange vacío y usa el nombre de la cola como clave de enrutamiento:

{
"type": "AmqpWriter",
"config": {
"url": "amqp://guest:guest@localhost:5672/",
"exchange": "",
"routingKey": "sensor_events"
}
}
  • url: URI de conexión AMQP (amqp://user:pass@host:port/vhost o amqps://...)
  • exchange: Nombre del exchange (cadena vacía apunta al exchange por defecto)
  • queue: Nombre de la cola de la que consumir (solo Lector)
  • routingKey: Clave de enrutamiento o patrón de vinculación
  • tls: Usar TLS para la conexión
  • prefetchCount: (Lector) Máximo de mensajes sin confirmar en el canal
  • autoAck: (Lector) Confirmar mensajes automáticamente al entregarlos
  • consumerTag: (Lector) Identificador de consumidor proporcionado por el cliente
  • mandatory: (Escritor) Devolver mensaje al publicador si no puede ser enrutado
  • contentType: (Escritor) Tipo MIME para los mensajes publicados (por defecto: application/json)
  • autoAck: true - El broker considera los mensajes entregados tan pronto como se envían. Más rápido, pero los mensajes pueden perderse si el consumidor cae.
  • autoAck: false - Meddle confirma explícitamente cada mensaje exitoso y rechaza (nack) cuando hay errores en la carga. Úsalo con prefetchCount para limitar los mensajes en vuelo.

Los exchanges de tipo topic admiten comodines en las claves de vinculación:

  • * coincide con exactamente una palabra: line1.*.temperature
  • # coincide con cero o más palabras: factory.#
  • MQTT - Alternativa ligera de pub/sub
  • Kafka - Mensajería basada en log de alto rendimiento
  • NATS - Alternativa de pub/sub cloud-native