Configuration
How the KubeMQ RabbitMQ (AMQP 0-9-1) connector is configured — enable/disable, TLS, and the availability-first startup model.
The RabbitMQ (AMQP 0-9-1) connector is configured server-side under the Connectors.Amqp
block of the KubeMQ server config, exposed as twelve CONNECTORS_AMQP_* environment
variables. The connector is opt-in (disabled by default) — you must explicitly enable
it. It ships with sensible production defaults, so once enabled no other env var is required.
The only thing clients configure is the broker endpoint via the KUBEMQ_AMQP_URL
environment variable (default amqp://guest:guest@localhost:5672/); the URL scheme selects
the transport (amqp:// plain, amqps:// TLS). Everything below is broker-side server
configuration.
Enable / disable
Enable the connector with its enable variable:
docker run -d \ --name kubemq \ -p 5672:5672 \ -p 5671:5671 \ -p 50000:50000 \ -e KUBEMQ_TOKEN=YOUR_LICENSE_KEY \ -e CONNECTORS_AMQP_ENABLE=true \ europe-docker.pkg.dev/kubemq/images/kubemq:nextTo turn it off again:
docker run -d -p 50000:50000 -e KUBEMQ_TOKEN=YOUR_LICENSE_KEY -e CONNECTORS_AMQP_ENABLE=false europe-docker.pkg.dev/kubemq/images/kubemq:nextThe enable variable is CONNECTORS_AMQP_ENABLE — spell it verbatim. This is the AMQP
0-9-1 (RabbitMQ) connector; it is distinct from the AMQP 1.0 connector, whose flag is
CONNECTORS_AMQP10_ENABLE. The two share ports 5672/5671 through the internal
amqpmux, but each has its own enable flag — disabling one leaves the other reachable.
Alternatively, disable just one listener with CONNECTORS_AMQP_PORT=0 (plain) or
CONNECTORS_AMQP_TLS_PORT=0 (TLS); setting both to 0 also disables the connector.
When Enable is false, no AMQP listener binds and the rest of this config is skipped.
Field notes
Port/TlsPort— whenEnable=true, at least one ofPortorTlsPortmust be non-zero, otherwise the server reportsbad AMQP configuration: Enable=true requires Port or TlsPort. The plain listener isamqp://host:5672/; the TLS listener isamqps://host:5671/.MaxConnections—0means unlimited; over-limit connections are accepted then closed with code320.DefaultVhost— the segment AMQP vhost/maps to. The default literal is"default"(a reserved vhost), not/. The channel mapping isamqp.{vhost}.{queue}. Reach the default vhost by connecting to/; connecting directly to a vhost literally nameddefaultis rejected. See the reserved-vhost callout in the configuration reference.GetBatchSize— bounds per-basic.getpulls (default32).DeadLetterMaxHops— the dead-letter cycle cap per (queue, reason); default16.MaxReceiveCount— the poison-message receive cap;0inherits the broker default.
TLS
TLS has no AMQP-specific configuration. TLS/AMQPS on port 5671 is managed by the
server-global Security block, shared with gRPC and REST. The TLS listener is active only
when that block is configured (Mode ≠ None); TLS 1.2+ is enforced and mTLS is supported.
Connecting over TLS is purely a transport swap (KUBEMQ_AMQP_URL=amqps://host:5671/); the
AMQP frames on top are identical. See
TLS and mTLS and
Auth & security.
Configuring the connector
The same settings can be supplied through a TOML config file, environment variables, or
docker run flags. Each environment variable uses the CONNECTORS_AMQP_ prefix.
[Connectors.Amqp]
Enable = true
Port = 5672
TlsPort = 5671
HeartbeatSeconds = 60
FrameMax = 131072
ChannelMax = 2047
MaxConnections = 1000
MaxBodySize = 104857600
DefaultVhost = "default"
GetBatchSize = 32
DeadLetterMaxHops = 16
MaxReceiveCount = 0CONNECTORS_AMQP_ENABLE=true
CONNECTORS_AMQP_PORT=5672
CONNECTORS_AMQP_TLS_PORT=5671
CONNECTORS_AMQP_HEARTBEAT_SECONDS=60
CONNECTORS_AMQP_FRAME_MAX=131072
CONNECTORS_AMQP_CHANNEL_MAX=2047
CONNECTORS_AMQP_MAX_CONNECTIONS=1000
CONNECTORS_AMQP_MAX_BODY_SIZE=104857600
CONNECTORS_AMQP_DEFAULT_VHOST=default
CONNECTORS_AMQP_GET_BATCH_SIZE=32
CONNECTORS_AMQP_DEAD_LETTER_MAX_HOPS=16
CONNECTORS_AMQP_MAX_RECEIVE_COUNT=0docker run -d \ --name kubemq \ -p 5672:5672 \ -p 5671:5671 \ -p 50000:50000 \ -e KUBEMQ_TOKEN=YOUR_LICENSE_KEY \ -e CONNECTORS_AMQP_ENABLE=true \ -e CONNECTORS_AMQP_MAX_CONNECTIONS=5000 \ -e CONNECTORS_AMQP_FRAME_MAX=262144 \ europe-docker.pkg.dev/kubemq/images/kubemq:nextThe Docker example includes CONNECTORS_AMQP_ENABLE=true — without it the connector stays
disabled and port 5672 is not bound. Set CONNECTORS_AMQP_ENABLE=false when you want to
turn the connector off, or CONNECTORS_AMQP_PORT=0 to drop the plain listener and serve
AMQPS only.
Availability-first startup. Unlike gRPC, the AMQP connector starts non-fatally: if the
listener cannot bind or the topology store is corrupt, the server logs error loading amqp connector, continuing without AMQP and keeps running. After an upgrade or config change,
verify the connector came up — look for the AMQP connector started log line or check the
dashboard AMQP page / GET /api/amqp/connections. See
Connections endpoint.
Related
Getting Started
Connect, declare, publish, and consume end-to-end through the RabbitMQ connector in minutes.
Architecture
The everything-is-a-Queue model, virtual exchanges, and cross-protocol interop.
TLS and mTLS
Enable the AMQPS listener on 5671, the JWT-in-password rule, and mutual TLS.
Configuration reference
The 12-field CONNECTORS_AMQP_* environment variable table and validation rules.
Channel mapping
The amqp.{vhost}.{queue} grammar, name constraints, and the reserved default vhost.
Was this page helpful?
Architecture
Inside the RabbitMQ (AMQP 0-9-1) connector — the everything-is-a-Queue model, virtual exchange routing, the channel mapping, and cross-protocol interop.
Exchanges and Routing
How RabbitMQ exchange types (direct, fanout, topic, headers) work as virtual connector-side routing, resolved at publish time into KubeMQ Queue channels.