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)