The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

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 a false

  • el rabbitmq-host o rabbitmq-port está configurado

  • todos los canales de Reactive Messaging RabbitMQ tienen los atributos host o port 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