Scenario
During a flash sale, order processing latency spikes. Redis cluster timeouts, RabbitMQ queues backlog millions, Kafka consumer lag skyrockets. Core services degrade.
Symptoms
- Redis:
redis-cli --latencyshows >100ms;INFO memorynear limit. Key evictions start. - RabbitMQ:
rabbitmqctl list_queuesshows queue depth exceeding 1M; nodes swapping. - Kafka:
kafka-consumer-groups --bootstrap-server ... --group ... --describeshows increasing lag; some consumers stop.
Diagnosis
Redis
# Slow queries
redis-cli SLOWLOG GET 50
# Large keys
redis-cli --bigkeys
# Persistence status
redis-cli INFO persistence
RabbitMQ
# Queue details
rabbitmqctl list_queues name messages consumers memory
# Memory usage
rabbitmq-diagnostics status | grep memory
Kafka
# Consumer lag
kafka-consumer-groups --bootstrap-server localhost:9092 --group mygroup --describe
# Partition distribution
kafka-topics --describe --topic mytopic --bootstrap-server localhost:9092
Risk Controls
- Redis: Enable slow log; avoid
KEYS; setmaxmemory-policy allkeys-lru; use Redis Cluster. - RabbitMQ: Set
x-message-ttlon queues; configuremax-length; use lazy queues. - Kafka: Increase partitions; tune
replica.lag.time.max.ms; ensuremin.insync.replicas≥2.
Rollback
- Redis: Revert
maxmemory-policyto previous value and scale memory. - RabbitMQ: Remove or adjust TTL; delete and recreate queue if needed.
- Kafka: Cannot reduce partitions; adjust consumer group settings or pause rebalance.
Verification
- Re-run diagnostic commands to confirm reduced lag/backlog.
- Monitor dashboards: Redis hit rate, RabbitMQ publish/consume rates, Kafka consumer offset progress.
- Run chaos experiments (network latency, node failures) to validate resilience.
When to Submit an OpsGlobal Ticket
- Root cause unclear, suspected middleware bug.
- Need cross-team coordination (application changes).
- Architectural advice required (e.g., switching from RabbitMQ to Kafka).
Use cases
Useful for teams handling NoSQL issues and needing a clear troubleshooting and delivery workflow.
Problem background
Dive into real-world reliability issues with Redis, RabbitMQ, and Kafka — from symptom detection and diagnosis to risk controls and rollback procedures. Essential for SRE teams managing event-driven systems.
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.