Scenario
Redis, RabbitMQ, and Kafka are critical components in modern microservices architectures, serving as caching, message queuing, and stream processing backbones. Reliability issues can cause service outages, data loss, or latency spikes.
Common Symptoms
- Redis: Response timeouts, frequent failovers, memory usage >80%, persistence failures
- RabbitMQ: Queue buildup, consumer disconnections, disk alarms, mirror queue sync issues
- Kafka: Shrinking ISR, frequent leader elections, increased produce/consume latency, broker crashes
Diagnosis Steps
Redis
- Check slow logs:
SLOWLOG GET 10 - View memory usage:
INFO memory - Check persistence:
INFO persistence– confirm RDB/AOF success - Cluster status:
CLUSTER INFO(if clustered)
RabbitMQ
- List queues:
rabbitmqctl list_queues name messages consumers - Check cluster health:
rabbitmqctl cluster_status - Monitor disk/memory:
rabbitmq-diagnostics check_port_connectivity - Inspect logs:
/var/log/rabbitmq/
Kafka
- Describe topic partitions:
kafka-topics --describe --bootstrap-server localhost:9092 --topic my-topic - Check consumer group offsets:
kafka-consumer-groups --bootstrap-server localhost:9092 --group my-group --describe - Broker logs:
/var/log/kafka/server.log - JMX monitoring via Prometheus
Repair Commands
Redis
- OOM:
CONFIG SET maxmemory 4gband set eviction policyallkeys-lru - Replication lag:
SLAVEOF <master-ip> <master-port> - Persistence failure: free disk space, adjust RDB save
SAVE 900 1
RabbitMQ
- Queue backlog: add consumers or restart consumer app
- Node down: restart node, ensure cookie match
- Mirrored queue sync:
rabbitmqctl sync_queue <queue-name>
Kafka
- Shrinking ISR: increase
min.insync.replicasor fix corrupt replicas - Unclean leader election: set
unclean.leader.election.enable=false - Latency: adjust
fetch.max.bytesor add partitions
Risk Controls
Before making changes, always back up config and data. For Redis: BGSAVE then copy dump.rdb; RabbitMQ: rabbitmqadmin export foo.json; Kafka: backup config/server.properties and log directories.
Rollback Strategies
- Redis: restore dump.rdb and restart, or revert config
- RabbitMQ: restore config and restart node, or rebuild queues from backup
- Kafka: restore server.properties and restart broker, replay logs via
kafka-replay-log-producerif needed
Verification
- Redis:
PING, checkINFOfor connections and latency - RabbitMQ: publish test message and consume, observe queue depth
- Kafka: produce and consume a message, check offset and latency
When to Submit an OpsGlobal Ticket
Contact OpsGlobal immediately if: - Middleware completely unavailable and cannot be recovered - Data loss exceeds acceptable threshold - Split-brain cannot be resolved - Need expert assistance for capacity planning or architecture optimization
Our SRE team is available 24/7 for remote support and automated remediation.
Use cases
Useful for teams handling NoSQL issues and needing a clear troubleshooting and delivery workflow.
Problem background
This article provides a comprehensive guide to ensuring the reliability of Redis, RabbitMQ, and Kafka in production. It covers common failure scenarios, symptoms, diagnostic steps, repair commands, risk controls, rollback strategies, verification processes, and when to submit a ticket to OpsGlobal.
Troubleshooting steps
Confirm impact and recent changes, collect logs, configuration and metrics, then apply fixes from low to high risk.
Command examples
Replace sample resource names with real values and store passwords, tokens and keys in environment variables.
Risks
Before production changes, confirm backups, access boundaries, change windows and rollback paths.
Rollback plan
Keep original configuration and release versions; roll back config, images or database changes if metrics degrade.
Deliverables
Root-cause notes, key commands, remediation steps, verification results and follow-up recommendations.
Need help with a similar technical issue?
If your servers, Kubernetes, Docker, CI/CD, databases or monitoring systems have similar issues, submit logs and config files for remote diagnosis.