Replace RabbitMQ with KubeMQ
Get your RabbitMQ (AMQP 0-9-1) app running on KubeMQ in three steps — enable the connector, swap the connection string, verify.
Your RabbitMQ client keeps its library and its code — only the AMQP connection string changes, from your RabbitMQ host to a local KubeMQ server.
Drop-in level: endpoint-only (legend)
1 · Enable the connector
The RabbitMQ (AMQP 0-9-1) connector is disabled by default — enable it and publish its ports:
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:next2 · Point your client at KubeMQ
# Before (RabbitMQ)
amqp://user:password@rabbitmq.example.com:5672/
# After (KubeMQ)
amqp://user:password@localhost:5672/Same pika (or any AMQP 0-9-1 client library) code — queue_declare, basic_publish, and
basic_consume all work unchanged.
3 · Smoke test
Publish then consume one message with pika:
import pika
conn = pika.BlockingConnection(pika.URLParameters("amqp://user:pass@localhost:5672/"))
ch = conn.channel()
ch.queue_declare(queue="smoke-test", durable=True)
ch.basic_publish(exchange="", routing_key="smoke-test", body=b"hello-kubemq")
conn.close()
print("published ok")import pika
conn = pika.BlockingConnection(pika.URLParameters("amqp://user:pass@localhost:5672/"))
ch = conn.channel()
method, props, body = ch.basic_get(queue="smoke-test", auto_ack=True)
assert body == b"hello-kubemq", f"unexpected body: {body!r}"
conn.close()
print("consume ok:", body)You should see:
published ok
consume ok: b'hello-kubemq'This is the same publish/consume check as Migrating from RabbitMQ → Verification Smoke Test.
What carries over — and what doesn't
Your client library, code, queue and exchange declarations, publisher confirms, and DLX all carry over unchanged — only the connection string moves. AMQP transactions don't carry over (use publisher confirms instead), and a handful of declare arguments are accepted but inert — see the migration guide for the full deviation list.
Getting Started
Connect, declare a queue, and send and receive over AMQP 0-9-1 in a few steps.
Migrating from RabbitMQ
The complete cutover guide — compatibility matrix, hard rejections, inert arguments, and behavioral deviations.
Didn't work?
- Wrong port — confirm
5672(plain) or5671(TLS) is published and matches your connection string. - Connector not enabled — a stock server doesn't bind the AMQP listener until
CONNECTORS_AMQP_ENABLE=trueis set. - Auth mismatch — if authentication is enabled, the SASL PLAIN password must be a valid KubeMQ JWT.
Was this page helpful?
Replace Kafka with KubeMQ
Repoint your Kafka clients at KubeMQ's drop-in broker — enable the connector, change bootstrap.servers, verify with kcat.
Replace AWS SQS & SNS with KubeMQ
Point your AWS SDK or LocalStack-style endpoint at KubeMQ's drop-in SQS/SNS connector — no rewrite; verify with the aws CLI or boto3.