Servicios de desarrollo para RabbitMQ
Dev Services for RabbitMQ inicia automáticamente un broker RabbitMQ en modo dev y cuando se ejecutan pruebas. Así, no tiene que iniciar un broker manualmente. La aplicación se configura automáticamente.
Activación/desactivación de los servicios de desarrollo para RabbitMQ
Los servicios de desarrollo para RabbitMQ se activan automáticamente a menos que:
-
quarkus.rabbitmq.devservices.enabled
se ajusta afalse
-
el
rabbitmq-host
orabbitmq-port
está configurado -
todos los canales de Reactive Messaging RabbitMQ tienen los atributos
host
oport
establecidos
Dev Services for RabbitMQ se basa en Docker para iniciar el broker. Si su entorno no soporta Docker, tendrá que iniciar el broker manualmente, o conectarse a un broker ya en funcionamiento. Puede configurar el acceso al broker usando las propiedades rabbitmq-host
, rabbitmq-port
, rabbitmq-username
y rabbitmq-password
.
Broker compartido
La mayoría de las veces se necesita compartir el broker entre aplicaciones. Dev Services for RabbitMQ implementa un mecanismo de descubrimiento de servicios para que sus múltiples aplicaciones Quarkus que se ejecutan en modo dev compartan un único broker.
Dev Services for RabbitMQ inicia el contenedor con la etiqueta quarkus-dev-service-rabbitmq que se utiliza para identificar el contenedor.
|
Si necesitas varios brokers (compartidos), puedes configurar el atributo quarkus.rabbitmq.devservices.service-name
e indicar el nombre del broker. Se busca un contenedor con el mismo valor, o se inicia uno nuevo si no se encuentra ninguno. El nombre de servicio por defecto es rabbitmq
.
El uso compartido está activado por defecto en el modo de desarrollo, pero está desactivado en el modo de prueba. Puede desactivar el uso compartido con quarkus.rabbitmq.devservices.shared=false
.
Ajuste del puerto
Por defecto, Dev Services for RabbitMQ elige un puerto aleatorio y configura la aplicación. Puede establecer el puerto configurando la propiedad quarkus.rabbitmq.devservices.port
.
Configuración de la imagen
Dev Services for RabbitMQ utiliza imágenes oficiales disponibles en https://hub.docker.com/_/rabbitmq Puede configurar la imagen y la versión utilizando la propiedad quarkus.rabbitmq.devservices.image-name
:
quarkus.rabbitmq.devservices.image-name=rabbitmq:latest
Access the management UI
By default, Dev Services for RabbitMQ use the official image with the management
tag. This means you have the management plugin available. You can use the Dev UI to find the HTTP port randomly affected or configure a static one via quarkus.rabbitmq.devservices.http-port
.
Topología predefinida
Dev Services for RabbitMQ soporta la definición de la topología al iniciar el broker. Puede definir intercambios, colas y enlaces utilizando la configuración estándar de Quarkus.
Definición de los intercambios
Para definir un intercambio RabbitMQ se proporciona el nombre del intercambio después de la clave quarkus.rabbitmq.devservices.exchanges
, seguido de una (o más) de las propiedades del intercambio:
quarkus.rabbitmq.devservices.exchanges.my-exchange.type=topic # defaults to 'direct'
quarkus.rabbitmq.devservices.exchanges.my-exchange.auto-delete=false # defaults to 'false'
quarkus.rabbitmq.devservices.exchanges.my-exchange.durable=true # defaults to 'false'
Además, se puede proporcionar cualquier argumento adicional a la definición del intercambio utilizando la clave arguments
:
quarkus.rabbitmq.devservices.exchanges.my-exchange.arguments.alternate-exchange=another-exchange
Definición de colas
Para definir una cola RabbitMQ se proporciona el nombre de la cola después de la clave quarkus.rabbitmq.devservices.queues
, seguido de una (o más) de las propiedades de la cola:
quarkus.rabbitmq.devservices.queues.my-queue.auto-delete=false # defaults to 'false'
quarkus.rabbitmq.devservices.queues.my-queue.durable=true # defaults to 'false'
Además, se puede proporcionar cualquier argumento adicional a la definición de la cola utilizando la tecla arguments
:
quarkus.rabbitmq.devservices.queues.my-queue.arguments.x-dead-letter-exchange=another-exchange
Definición de enlaces
Para definir un enlace de RabbitMQ se proporciona el nombre del enlace después de la clave quarkus.rabbitmq.devservices.bindings
, seguido de una (o más) de las propiedades del enlace:
quarkus.rabbitmq.devservices.bindings.a-binding.source=my-exchange # defaults to name of binding
quarkus.rabbitmq.devservices.bindings.a-binding.routing-key=some-key # defaults to '#'
quarkus.rabbitmq.devservices.bindings.a-binding.destination=my-queue # defaults to name of binding
quarkus.rabbitmq.devservices.bindings.a-binding.destination-type=queue # defaults to 'queue'
El nombre del enlace sólo se utiliza para la configuración de los servicios de desarrollo y no forma parte del enlace definido en RabbitMQ. |
Además, se puede proporcionar cualquier argumento adicional a la definición del enlace utilizando la tecla arguments
:
quarkus.rabbitmq.devservices.bindings.a-binding.arguments.non-std-option=value