Replace Kafka with KubeMQ
Repoint your Kafka clients at KubeMQ's drop-in broker — enable the connector, change bootstrap.servers, verify with kcat.
Your Kafka client keeps its library, its code, and the real Kafka wire protocol — only
bootstrap.servers changes, from your Kafka cluster to a local KubeMQ server.
Drop-in level: endpoint-only (legend)
1 · Enable the connector
The Kafka connector is disabled by default — enable it and publish its ports:
docker run -d \ --name kubemq \ -p 9092:9092 \ -p 9093:9093 \ -p 50000:50000 \ -e KUBEMQ_TOKEN=YOUR_LICENSE_KEY \ -e CONNECTORS_KAFKA_ENABLE=true \ europe-docker.pkg.dev/kubemq/images/kubemq:next2 · Point your client at KubeMQ
# Before (Kafka)
bootstrap.servers=your-kafka-cluster.example.com:9092
# After (KubeMQ)
bootstrap.servers=localhost:9092Same client library, same producer/consumer code — only the seed broker address moves.
3 · Smoke test
Produce and consume one record with kcat (the librdkafka CLI needs no client code at all):
echo "hello kubemq" | kcat -b localhost:9092 -t orders -Pkcat -b localhost:9092 -G orders-group -o beginning -c 1 orders-o beginning reads from the start of the topic, so a brand-new consumer group still
sees the record you just produced (without it, a fresh group starts at the latest offset
and the consumer would block waiting for the next message).
The producer is silent on success; the consumer prints the record body (kcat also logs consumer-group rebalance lines to stderr). You should see:
hello kubemqThis is the same round-trip as Getting Started,
which also covers the same produce/consume flow in Go, Python, Java, JavaScript, C#, Ruby,
and Rust — no kcat required.
What carries over — and what doesn't
Your client library, code, topic and consumer-group names, and produce/consume semantics all
carry over unchanged — only the broker address moves. Bringing an existing cluster's topic
history and consumer offsets across (rather than starting fresh) is a separate step covered
by the migration guide's kmq migrate tool.
Getting Started
The full produce/consume round-trip across kcat and seven client libraries, plus how topics and partitions map to storage.
Migrate from Kafka
Assess fit, then move an existing cluster's topic history and consumer-group offsets onto KubeMQ.
Didn't work?
- Wrong port — confirm
9092(plain) or9093(TLS) is published and matchesbootstrap.servers. - Connector not enabled — a stock server doesn't bind the Kafka listener until
CONNECTORS_KAFKA_ENABLE=trueis set. - Auth mismatch — if you enabled authentication, confirm your client's SASL/JWT credentials match.
Was this page helpful?
Replace your messaging stack
Point your existing Kafka, RabbitMQ, SQS/SNS, MQTT, STOMP, AMQP, or Pub/Sub client at KubeMQ by changing one connection string.
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.