Senario
Redis, RabbitMQ, dan Kafka adalah komponen kritikal dalam seni bina mikroservis moden, berfungsi sebagai tulang belakang cache, baris gilir mesej, dan pemprosesan strim. Isu kebolehpercayaan boleh menyebabkan gangguan perkhidmatan, kehilangan data, atau lonjakan kependaman.
Gejala Biasa
- Redis: Tamat masa respons, pertukaran gagal kerap, penggunaan memori >80%, kegagalan persistensi
- RabbitMQ: Pengumpulan baris gilir, pemutusan sambungan pengguna, amaran cakera, isu penyegerakan baris gilir cermin
- Kafka: ISR mengecut, pemilihan ketua kerap, kependaman penghasilan/penggunaan meningkat, broker ranap
Langkah Diagnostik
Redis
- Periksa log perlahan:
SLOWLOG GET 10 - Lihat penggunaan memori:
INFO memory - Periksa persistensi:
INFO persistence– sahkan kejayaan RDB/AOF - Status kluster:
CLUSTER INFO(jika berkluster)
RabbitMQ
- Senarai baris gilir:
rabbitmqctl list_queues name messages consumers - Periksa kesihatan kluster:
rabbitmqctl cluster_status - Pantau cakera/memori:
rabbitmq-diagnostics check_port_connectivity - Periksa log:
/var/log/rabbitmq/
Kafka
- Huraikan bahagian topik:
kafka-topics --describe --bootstrap-server localhost:9092 --topic my-topic - Periksa offset kumpulan pengguna:
kafka-consumer-groups --bootstrap-server localhost:9092 --group my-group --describe - Log broker:
/var/log/kafka/server.log - Pemantauan JMX melalui Prometheus
Arahan Pembaikan
Redis
- OOM:
CONFIG SET maxmemory 4gbdan tetapkan dasar pengusiranallkeys-lru - Ketinggalan replikasi:
SLAVEOF <master-ip> <master-port> - Kegagalan persistensi: bebaskan ruang cakera, laraskan simpanan RDB
SAVE 900 1
RabbitMQ
- Tunggakan baris gilir: tambah pengguna atau mulakan semula aplikasi pengguna
- Nod turun: mulakan semula nod, pastikan kuki Erlang sepadan
- Segerakkan baris gilir cermin:
rabbitmqctl sync_queue <queue-name>
Kafka
- ISR mengecut: tingkatkan
min.insync.replicasatau baiki replika rosak - Pemilihan ketua tidak bersih: tetapkan
unclean.leader.election.enable=false - Kependaman: laraskan
fetch.max.bytesatau tambah bahagian
Kawalan Risiko
Sebelum membuat perubahan, sentiasa buat sandaran konfigurasi dan data. Untuk Redis: BGSAVE kemudian salin dump.rdb; RabbitMQ: rabbitmqadmin export foo.json; Kafka: sandarkan config/server.properties dan direktori log.
Strategi Pengembalian
- Redis: pulihkan dump.rdb dan mulakan semula, atau kembalikan konfigurasi
- RabbitMQ: pulihkan konfigurasi dan mulakan semula nod, atau bina semula baris gilir daripada sandaran
- Kafka: pulihkan server.properties dan mulakan semula broker, main semula log via
kafka-replay-log-producerjika perlu
Pengesahan
- Redis:
PING, semakINFOuntuk sambungan dan kependaman - RabbitMQ: terbitkan mesej ujian dan guna, perhatikan kedalaman baris gilir
- Kafka: hasilkan dan guna satu mesej, periksa offset dan kependaman
Bila Perlu Menghantar Tiket OpsGlobal
Hubungi OpsGlobal dengan segera jika: - Middleware tidak tersedia sepenuhnya dan tidak boleh dipulihkan - Kehilangan data melebihi ambang yang boleh diterima - Split-brain tidak dapat diselesaikan - Memerlukan bantuan pakar untuk perancangan kapasiti atau pengoptimuman seni bina
Pasukan SRE kami bersedia 24/7 untuk sokongan jauh dan pembetulan automatik.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu NoSQL dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Artikel ini menyediakan panduan komprehensif untuk memastikan kebolehpercayaan Redis, RabbitMQ, dan Kafka dalam pengeluaran. Ia merangkumi senario kegagalan biasa, gejala, langkah diagnostik, arahan pembaikan, kawalan risiko, strategi pengembalian, proses pengesahan, dan bila perlu menghantar tiket kepada OpsGlobal.
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.