【Kata Pengantar】
Ketika data mencapai jumlah tertentu, database akan menjadi kemacetan seluruh sistem, dan strategi pengoptimalan umumnya diadopsi sebagai pemisahan baca dan tulis, dan database mewujudkan pemisahan baca dan tulis dengan membagi database utama dari database (operasi permintaan tulis dari database utama, operasi permintaan baca dari database);
【Ide untuk memecahkan penundaan data】
1. Prinsip sinkronisasi master-slave (di sini kami mengambil MySQL paling populer sebagai contoh)
Berikut adalah diagram skematik sinkronisasi data master-slave MySQL klasik melalui binlog:
2. Bagaimana masalah muncul?
1. Dari skema di atas, tidak sulit untuk menemukan bahwa sinkronisasi master-slave memiliki penundaan tertentu, yang memengaruhi ukuran penundaan:
(1) Ukuran penundaan tergantung pada jumlah data yang dihasilkan dari sinkronisasi terakhir hingga saat ini
(2) Situasi jaringan saat ini antar server
(3) Tekanan server master-slave itu sendiri (CPU, memori, IO, dll.)
2. Karena layanan database umumnya ada di intranet, dan server akan lebih tinggi dalam konfigurasi (lebih dari kebutuhan sebenarnya) saat dibeli, sinkronisasi pada dasarnya sangat cepat, umumnya dalam milidetik;
3. Dalam skenario bisnis umum, latensi milidetik dapat diabaikan;
4. Ada kasus umum dan khusus, dan beberapa situasi khusus memerlukan perbedaan waktu milidetik waktu nyata. Berikut adalah solusi umum untuk situasi khusus ini.
3. Solusi latensi data:
1. Skema 1: Tulis program dua kali (tulis database utama dan baca database secara bersamaan)
2. Skema 2: Baca program untuk memeriksa database utama
3. Skema 3: Tulis database utama dan tulis cache (atur waktu kedaluwarsa tertentu, umumnya sedikit lebih besar dari penundaan maksimum sinkronisasi database), baca program, baca cache, dan baca database slave
4. Keuntungan dan kerugian dari ketiga skema:
1. Skema 1: Penulisan ganda akan menghabiskan sejumlah kinerja, yang relatif mudah diterapkan, dan tidak cocok untuk skenario penulisan bersamaan yang tinggi;
2. Skema 2: Program membaca akan memengaruhi kinerja perpustakaan utama, yang relatif mudah diterapkan, dan tidak cocok untuk skenario bacaan bersamaan yang tinggi.
3. Skema 3: Dalam kebanyakan kasus, baca dan tulis menghabiskan lebih banyak kinerja tulis, yang lebih kompleks untuk diterapkan, dan cocok untuk pembacaan dan penulisan bersamaan yang tinggi (pembacaan dan penulisan cache sangat cepat);
【Ringkasan】
1. Implementasi itu penting, tetapi yang lebih penting adalah idenya;
2. Banyak prinsip dan gagasan yang mendasari bersifat universal Asli:https://blog.csdn.net/zhanghan18 ... le/details/91638443
|