Skip to content

RabbitMQ

The Wodby RabbitMQ catalog stack runs a single RabbitMQ service with the management UI. The current composition and defaults are documented in wodby/stack-rabbitmq.

Connect an application

Link your application's app service to the RabbitMQ app service. See Links. The app service receives the host, port and the account tokens in variables named by the linking service. Read them in code. Do not copy the password into your repository.

Port Use
5672 AMQP, without TLS
15672 Management UI and HTTP API
15692 Prometheus metrics at /metrics, internal only

The account tokens are on the RabbitMQ app service's Configuration > Tokens tab:

  • username: wodby
  • password: generated by Wodby
  • vhost: /

Applications do not need the generated erlang_cookie token.

Management UI

The management port is an HTTP endpoint, so Wodby generates a technical route for it. Sign in with the username and password tokens above. To stop serving the route, disable it under Endpoints. See Endpoints.

Manage accounts

RabbitMQ applies the default user, password and virtual host only when it first creates its database. Changing the tokens later does not change the account. Change accounts in RabbitMQ itself, with rabbitmqctl in a web terminal or in the management UI.

Settings

Set these variables on the app service under Configuration > Variables. See Environment variables.

Variable Setting Default
RABBITMQ_CHANNEL_MAX channel_max 2047
RABBITMQ_HEARTBEAT heartbeat 60
RABBITMQ_VM_MEMORY_HIGH_WATERMARK_RELATIVE Memory high watermark, as a share of available memory 0.4
RABBITMQ_DISK_FREE_LIMIT disk_free_limit.absolute 50MB

Do not edit the generated RabbitMQ configuration file; it is rewritten on every start.

Data and limits

The stack adds a 5 GB Data volume. It holds definitions, queues and messages. Without the volume, everything, including users and queues created at runtime, is lost when the container is replaced. A message survives a restart only when the volume exists, the queue is durable and the message is persistent.

RabbitMQ runs as a single node and does not scale. The service has no backup or import support.

Check that it works

In a web terminal on the RabbitMQ app service, run:

rabbitmq-diagnostics -q ping
rabbitmqctl list_queues name messages consumers
rabbitmqctl list_users