Senario
Anda mengurus platform e-dagang yang bergantung pada Redis untuk caching, RabbitMQ untuk pesanan, dan Kafka untuk log tingkah laku pengguna. Suatu hari, pesanan tertangguh, halaman lambat dimuat, dan log bertimbun, menjejaskan pengalaman pengguna.
Gejala
- Redis: Kadar hit cache menurun drastik, masa respons meningkat dari 1ms ke 100ms,
INFO statsmenunjukkanevicted_keysmelonjak. - RabbitMQ: Kedalaman giliran melebihi ambang,
rabbitmqctl list_queuesmenunjukkan ribuanmessages_ready, sambungan pengguna menurun. - Kafka: Ketinggalan pengguna meningkat,
kafka-consumer-groups --describemenunjukkanLAGbertambah, I/O cakera tinggi.
Diagnosis
Redis
- Periksa memori:
redis-cli INFO memoryuntukused_memorydanmaxmemory. - Lihat pertanyaan perlahan:
SLOWLOG GET 100untuk menganalisis perintah mahal. - Sahkan sambungan:
CLIENT LISTuntuk melihat jika melebihimaxclients.
RabbitMQ
- Giliran dan sambungan:
rabbitmqctl list_queues name messages_ready messages_unacknowledged. - Kesihatan nod:
rabbitmqctl statusuntukrunningdanalarms. - Tekanan memori:
rabbitmqctl reportuntuk penggunaanmemory.
Kafka
- Ketinggalan pengguna:
kafka-consumer-groups --bootstrap-server localhost:9092 --group <group> --describe. - Status replika partition:
kafka-topics --describe --topic <topic> --bootstrap-server localhost:9092. - Penggunaan cakera:
df -hmemantau partitionlog.dirs.
Arahan
Redis
# Tetapkan dasar maxmemory (cadangan allkeys-lru untuk pengeluaran)
redis-cli CONFIG SET maxmemory-policy allkeys-lru
# Hadkan sambungan
redis-cli CONFIG SET maxclients 5000
# Dayakan acara keyspace
redis-cli CONFIG SET notify-keyspace-events KEA
RabbitMQ
# Tingkatkan panjang maksimum giliran untuk elak limpahan memori
rabbitmqctl set_policy DLQ ".*" '{"max-length":1000000}' --apply-to queues
# Dayakan giliran malas untuk kurangkan memori
rabbitmqctl set_policy LazyQueue ".*" '{"queue-mode":"lazy"}' --apply-to queues
# Senarai pengguna
rabbitmqctl list_consumers
Kafka
# Laraskan masa pengekalan log untuk bebaskan cakera
kafka-configs --bootstrap-server localhost:9092 --entity-type topics --entity-name <topic> --alter --add-config retention.ms=604800000
# Tingkatkan partition untuk keselarian lebih tinggi
kafka-topics --alter --topic <topic> --partitions 12 --bootstrap-server localhost:9092
Kawalan Risiko
- Sandarkan konfigurasi sebelum perubahan:
cp /etc/redis/redis.conf /etc/redis/redis.conf.bak. - Perubahan dasar RabbitMQ mempengaruhi seluruh kluster; uji dahulu di bukan pengeluaran.
- Partition Kafka tidak boleh dikurangkan; pastikan pengguna hiliran menyokong pengimbangan semula sebelum menambah.
Rollback
Redis
redis-cli CONFIG SET maxmemory-policy volatile-lru # pulihkan ke lalai
RabbitMQ
rabbitmqctl clear_policy DLQ # buang dasar
Kafka
kafka-configs --bootstrap-server localhost:9092 --entity-type topics --entity-name <topic> --alter --delete-config retention.ms
Pengesahan
- Redis: Jalankan
redis-benchmark -q -n 1000untuk banding latensi; periksaINFO statsuntukevicted_keysberkurang. - RabbitMQ: Sahkan kedalaman giliran menurun dan pengguna bersambung semula:
rabbitmqctl list_queues name messages_ready. - Kafka: Pantau LAG pengguna mencapai sifar; penggunaan cakera normal.
Bila Menghantar Tiket
- Masih bermasalah selepas perubahan.
- OOM atau cakera penuh menyebabkan perkhidmatan tidak tersedia.
- Perlu migrasi data atau konfigurasi semula kluster (contoh: pemilihan semula pengawal Kafka).
- Disyaki isu perkakasan atau rangkaian.
Pasukan OpsGlobal menyediakan sokongan pakar 24/7, mampu diagnosis jarak jauh dan operasi pemulihan kompleks.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu NoSQL dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Pelajari cara mendiagnosis dan menyelesaikan isu kebolehpercayaan biasa dengan Redis, RabbitMQ, dan Kafka. Panduan ini merangkumi senario sebenar, gejala, arahan diagnosis, kawalan risiko, prosedur rollback, langkah 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.