Senario
Middleware seperti Redis, RabbitMQ dan Kafka adalah penting dalam sistem teragih moden. Senario kegagalan biasa termasuk: - Redis: Ralat kehabisan memori (OOM), ketinggalan replikasi, isu failover kluster. - RabbitMQ: Barisan gilir terkumpul, cakera penuh, amaran memori. - Kafka: Broker gagal, partisi kurang replikasi, ISR mengecut.
Gejala
- Pancang kependaman, peningkatan kadar ralat, degradasi perkhidmatan.
- Sambungan klien Redis gagal atau tamat masa.
- Pengesahan penerbit RabbitMQ gagal, pengguna berhenti.
- Ralat pengeluar Kafka, peningkatan ketinggalan pengguna.
Diagnosis
Gunakan alat terbina:
- Redis: redis-cli ping, INFO memory, SLOWLOG GET
- RabbitMQ: rabbitmq-diagnostics check_alarms, rabbitmqctl list_queues
- Kafka: kafka-broker-api-versions.sh, kafka-topics --describe
Periksa log:
- Redis: /var/log/redis/redis-server.log
- RabbitMQ: /var/log/rabbitmq/
- Kafka: logs/server.log
Contoh Perintah
Penggunaan memori Redis:
redis-cli -h host -p 6379 INFO memory | grep used_memory_human
Kesesakan baris gilir RabbitMQ:
rabbitmqctl list_queues name messages_ready messages_unacknowledged
Status partisi Kafka:
kafka-topics --bootstrap-server localhost:9092 --describe --topic test
Kawalan Risiko
- Tetapkan had sumber (memori, cakera).
- Konfigurasi amaran (Prometheus + Alertmanager).
- Gunakan replika dan lebihan.
- Laksanakan penutupan lembut dan pemeriksaan kesihatan.
Rollback
- Redis: Promosi replika sebagai master jika nod gagal; guna Sentinel untuk failover automatik.
- RabbitMQ: Set semula ambang tinggi memori, padam baris gilir yang tersekat, atau bina semula baris gilir cermin.
- Kafka: Mulakan semula Broker yang gagal, tugaskan semula partisi, atau laraskan ISR secara manual.
Pengesahan
- Redis:
SET key valuedanGETuntuk mengesahkan. - RabbitMQ: Terbitkan dan guna satu mesej.
- Kafka: Hasilkan dan guna satu mesej, periksa ketinggalan pengguna.
Bila Perlu Hantar Tiket OpsGlobal
Apabila isu melebihi keupayaan pasukan atau memerlukan sokongan segera: - Kehilangan data kritikal yang tidak dapat dipulihkan sendiri. - Perpecahan otak kluster atau ketidakselarasan data. - Perlu semakan seni bina atau penalaan prestasi.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu NoSQL dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Merangkumi senario kegagalan biasa bagi setiap middleware, langkah diagnostik, perintah pemeriksaan kesihatan, kawalan risiko, prosedur rollback, dan kaedah pengesahan untuk membantu pasukan DevOps/SRE mengekalkan ketersediaan tinggi.
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.