ConejoMQ

La plataforma Devprime es compatible de forma nativa con RabbitMQ, un software de mensajería de código abierto que funciona con los protocolos Advanced Message Queue Server, Seuing Protocol (AMQP) y Streaming Text Oriented Messaging Protocol (MQTT).

RabbitMQ se puede utilizar en las instalaciones, en la nube, docker, Kubernetes y plataformas gestionadas como CloudAMQP y otras.

Suscríbete a una cola en RabbitMQ

El siguiente JSON muestra la configuración predeterminada con las credenciales de RabbitMQ, el intercambio utilizado, el reintento, la reserva, los subprocesos y la opción ‘Suscribirse’ para recibir eventos en la cola ‘orderevents’ como se define en el elemento Colas.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"DevPrime_Stream": [
    {
      "Alias": "Stream1",
      "Enable": "true",
      "Default": "true",
      "StreamType": "RabbitMQ",
      "HostName": "Localhost",
      "User": "guest",
      "Password": "guest",
      "Port": "5672",
      "Exchange": "devprime",
      "ExchangeType": "direct",
      "Retry": "3",
      "Fallback": "State1",
      "Threads": "30",
      "Buffer": "1",
      "Subscribe": [
        {
          "Queues": "orderevents"
        }
      ]
    }
  ],

En el siguiente ejemplo, detallamos la configuración predeterminada del adaptador y la configuración específica de RabbitMQ.

Generalidades
Habilitar Habilitar el adaptador de flujo (verdadero/falso)
Alias Define un nombre único para identificar el servicio
Predeterminado Establece como valor predeterminado el centario de tener más de una secuencia (Verdadero/Falso)
Tipo de corriente Establece el tipo de secuencia (RabbitMQ/Kafka)
Nombre de host Configurar la url de RabbitMQ
Usuario Configura el usuario para iniciar sesión
Contraseña Configura la contraseña del usuario
Puerto Configurar el puerto
Intercambio Configura el RabbitMQ
ExchangeType Configura el tipo de Exchange
Reintentar Configurar el número de reintentos
Reserva Configura un estado para la resistencia automática en caso de error
Hilos Establece el número de conexiones simultáneas que procesan eventos
Búfer Define el número de eventos obtenidos por conexión
Suscríbete Configura las colas de RabbitMQ para lectura

Ejemplo en el registro de la aplicación con esta configuración:

1
2
[INF][ms-order][Stream][Type "RabbitMQ"][Alias "Stream1"]
["Enable"][Subscribe]["orderevents"][Parallel "30"][Buffer "1"]

Ejemplo de YAML con la configuración de la aplicación:
Para exportar las configuraciones como una variable de entorno y usarlas en Kubernetes, ejecute el comando en la CLI de Devprime:
dp export kubernetes

1
2
3
4
5
- name: devprime_stream1
  value: "alias=Stream1|||enable=true|||default=true|||streamtype=RabbitMQ|||
  hostname=rabbitmq.default.svc|||user=guest|||password=guest|||port=5672|||
  exchange=devprime|||exchangetype=direct|||retry=3|||fallback=State1|||
  threads=30|||buffer=1|||subscribe=[queues=orderevents]"

Firmar una cola en RabbitMQ usando un intercambio “Fanout”

En el ejemplo JSON siguiente, se han agregado los parámetros “Exchange” y “ExchangeType”, estableciendo el tipo de Exchange en “fanout” y usando las colas de elementos como “in-fanout-01”.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 "DevPrime_Stream": [
    {
      "Alias": "Stream1",
      "Enable": "true",
      "Default": "true",
      "StreamType": "RabbitMQ",
      "HostName": "Localhost",
      "User": "guest",
      "Password": "guest",
      "Port": "5672",
      "Exchange": "devprime",
      "ExchangeType": "direct",
      "Retry": "3",
      "Fallback": "State1",
      "Threads": "30",
      "Buffer": "1",
      "Subscribe": [
        {
          "Exchange": "dp-fanout",
          "ExchangeType": "fanout",
          "queues": "in-fanout-01"
        }
      ]
    }
  ],

Ejemplo de YAML con la configuración de la aplicación:

1
2
3
4
5
6
- name: devprime_stream1
    value: "alias=Stream1|||enable=true|||default=true|||
    streamtype=RabbitMQ|||hostname=rabbitmq.default.svc|||
    user=guest|||password=guest|||port=5672|||exchange=devprime|||
    exchangetype=direct|||retry=3|||fallback=State1|||threads=30|||buffer=5|||
    subscribe=[exchange=dp-fanout,exchangetype=fanout,queues=in-fanout-01]"

Configuración de Publicación/Suscripción usando un “Fanout” de Exchange

En el ejemplo que se presenta en el JSON siguiente, observará que, además del parámetro “Subscribe” en el Exchange “dp-fanout”, hemos agregado un parámetro “Publish” para permitir la publicación de eventos en el Ramout de Exchange “dp-fanout-global”. En el ejemplo, también puede ver “Suscribirse” en la cola “ms-order-in”, que está vinculada al Exchange predeterminado “devprime”.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 "DevPrime_Stream": [
    {
      "Alias": "Stream1",
      "Enable": "true",
      "Default": "true",
      "StreamType": "RabbitMQ",
      "HostName": "Localhost",
      "User": "guest",
      "Password": "guest",
      "Port": "5672",
      "Exchange": "devprime",
      "ExchangeType": "direct",
      "Retry": "3",
      "Fallback": "State1",
      "Threads": "30",
      "Buffer": "1",
      "Publish": [
        {
          "Exchange": "dp-fanout-global",
          "ExchangeType": "fanout"
        }
      ],
      "Subscribe": [
        {
          "Exchange": "dp-fanout",
          "ExchangeType": "fanout",
          "queues": "in-fanout-01"
        },
        {
          "queues": "ms-order-in"
        }
      ]
    }
  ],

Ejemplo en el registro de la aplicación con esta configuración:

1
2
3
[INF][ms-order][Stream][Type "RabbitMQ"][Alias "Stream1"]
["Enable"][Subscribe]["in-fanout-01,ms-order-in"]
[Parallel "30"][Buffer "1"]

Ejemplo de YAML con la configuración de la aplicación:

1
2
3
4
5
6
7
8
- name: devprime_stream1
    value: "alias=Stream1|||enable=true|||default=true|||streamtype=RabbitMQ|||
    hostname=rabbitmq.default.svc|||user=guest|||password=guest|||
    port=5672|||exchange=devprime|||exchangetype=direct|||retry=3|||
    fallback=State1|||threads=30|||buffer=5|||
    publish=[exchange=dp-fanout-global,exchangetype=fanout]|||
    subscribe=[exchange=dp-fanout,exchangetype=fanout,queues=in-fanout-01]
    [queues=ms-order-in]"
Última modificación January 10, 2024 (967dcac3)