【Önsöz】
Veri belirli bir miktara ulaştığında, veritabanı tüm sistemin darboğazı olur ve optimizasyon stratejisi genellikle okuma ve yazma ayrımı olarak benimsenir; veritabanı ise ana veritabanını veritabanından ayırarak okuma ve yazma ayrımını gerçekleştirir (ana veritabanından yazma isteği işlemi, veritabanından okuma talebi işlemi);
【Veri gecikmelerini çözmek için fikirler】
1. Usta-köle senkronizasyonu prensibi (burada en popüler MySQL'i örnek alıyoruz)
İşte klasik bir MySQL master-slave veri senkronizasyonunun binlog üzerinden şematik diyagramı:
2. Sorunlar nasıl ortaya çıkar?
1. Yukarıdaki şemadan, master-slave senkronizasyonunun belirli bir gecikmeye sahip olduğu ve bunun gecikme boyutunu etkilediği tespit edilmesi zor değildir:
(1) Gecikmenin boyutu, son senkronizasyondan günümüze kadar üretilen veri miktarına bağlıdır
(2) Sunucular arasındaki mevcut ağ durumu
(3) Master-slave sunucusunun (CPU, bellek, IO vb.) üzerindeki baskı
2. Veritabanı servisi genellikle intranet içinde olduğundan, satın alındığında sunucu yapılandırmada gerçek ihtiyacından daha yüksek olur, senkronizasyon temelde çok hızlıdır, genellikle milisaniyeler içinde;
3. Genel iş senaryolarında, milisaniyelik gecikme göz ardı edilebilir;
4. Genel ve özel durumlar vardır ve bazı özel durumlar gerçek zamanlı milisaniye zaman farkı gerektirir. İşte bu özel durumlar için yaygın çözümler.
3. Veri gecikmesi çözümleri:
1. Şema 1: Programı çift yaz (ana veritabanını yazmak ve veritabanını aynı anda okumak)
2. Şema 2: Ana veritabanını kontrol etmek için programı okuyun
3. Şema 3: Ana veritabanını yaz ve önbelleği yaz (belirli bir son kullanma süresi belirle, genellikle veritabanı senkronizasyonunun maksimum gecikmesinden biraz daha fazla), programı oku, önbelleği oku ve köle veritabanını oku
4. Üç programın avantajları ve dezavantajları:
1. Şema 1: Çift yazma belirli bir performans gerektirir, bu da uygulaması nispeten kolaydır ve yüksek eşzamanlı yazma senaryoları için uygun değildir;
2. Şema 2: Okuma programı, ana kütüphanenin performansını etkiler; bu kütüphane, uygulaması nispeten basittir ve yüksek eşzamanlı okuma senaryoları için uygun değildir.
3. Şema 3: Çoğu durumda, okuma ve yazma daha fazla yazma performansı gerektirir, bu da uygulanması daha karmaşıktır ve hem yüksek eşzamanlı okuma hem de yazma için uygundur (önbellek okuma ve yazma çok hızlıdır);
【Özet】
1. Uygulama önemlidir, ancak daha önemli olan fikirdir;
2. Birçok temel ilke ve fikir evrenseldir Özgün:https://blog.csdn.net/zhanghan18 ... le/details/91638443
|