Senario
Semasa jualan kilat, pemprosesan pesanan menjadi lambat. Redis cluster kerap timeout, RabbitMQ queue bertimbun berjuta-juta, Kafka consumer lag meningkat mendadak. Perkhidmatan teras merosot.
Simptom
- Redis:
redis-cli --latencymenunjukkan >100ms;INFO memorymenghampiri had. Eviksi bermula. - RabbitMQ:
rabbitmqctl list_queuesmenunjukkan kedalaman queue >1 juta; node swap. - Kafka:
kafka-consumer-groups --bootstrap-server ... --group ... --describemenunjukkan lag meningkat; beberapa pengguna berhenti.
Diagnosis
Redis
# Pertanyaan lambat
redis-cli SLOWLOG GET 50
# Kunci besar
redis-cli --bigkeys
# Status persistensi
redis-cli INFO persistence
RabbitMQ
# Butiran queue
rabbitmqctl list_queues name messages consumers memory
# Penggunaan memori
rabbitmq-diagnostics status | grep memory
Kafka
# Lag pengguna
kafka-consumer-groups --bootstrap-server localhost:9092 --group mygroup --describe
# Taburan partition
kafka-topics --describe --topic mytopic --bootstrap-server localhost:9092
Kawalan Risiko
- Redis: Aktifkan log perlahan; elakkan
KEYS; tetapkanmaxmemory-policy allkeys-lru; guna Redis Cluster. - RabbitMQ: Tetapkan
x-message-ttlpada queue; hadkanmax-length; guna lazy queues. - Kafka: Tambah partition; laraskan
replica.lag.time.max.ms; pastikanmin.insync.replicas≥2.
Rollback
- Redis: Kembalikan
maxmemory-policyke nilai asal dan skala memori. - RabbitMQ: Alih keluar atau laraskan TTL; padam dan buat semula queue jika perlu.
- Kafka: Partisi tidak boleh dikurangkan; laraskan tetapan kumpulan pengguna atau hentikan pengimbangan semula.
Pengesahan
- Jalankan semula arahan diagnosis untuk mengesahkan pengurangan lag/timbunan.
- Pantau papan pemuka: kadar hit Redis, kadar terbit/guna RabbitMQ, kemajuan offset pengguna Kafka.
- Jalankan eksperimen kekacauan (latensi rangkaian, kegagalan nod) untuk mengesahkan ketahanan.
Bila Serah Tiket OpsGlobal
- Punca tidak jelas, disyaki bug middleware.
- Perlukan koordinasi merentas pasukan (perubahan aplikasi).
- Perlukan nasihat seni bina (contoh: beralih dari RabbitMQ ke Kafka).
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu NoSQL dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Analisis mendalam isu kebolehpercayaan Redis, RabbitMQ, Kafka dalam persekitaran pengeluaran — dari simptom, diagnosis, hingga kawalan risiko dan rollback. Penting untuk pasukan SRE yang mengurus sistem berasaskan peristiwa.
Langkah Penyelesaian
Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.
Contoh Arahan
Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.
Risiko
Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.
Pelan Rollback
Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.
Senarai Serahan
Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.
Perlu bantuan isu teknikal serupa?
Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.