【Vorwort】
Wenn die Daten eine bestimmte Menge erreichen, wird die Datenbank zum Engpass des gesamten Systems, und die Optimierungsstrategie wird in der Regel als Lese- und Schreibtrennung angewendet, wobei die Datenbank Lese- und Schreibtrennung realisiert, indem sie die Hauptdatenbank von der Datenbank trennt (Schreibanforderungsoperation aus der Hauptdatenbank, Leseanfrageoperation aus der Datenbank);
【Ideen zur Lösung von Datenverzögerungen】
1. Das Prinzip der Master-Slave-Synchronisation (hier nehmen wir das beliebteste MySQL als Beispiel)
Hier ist ein schematisches Diagramm einer klassischen MySQL-Master-Slave-Datensynchronisation mittels Binlog:
2. Wie entstehen Probleme?
1. Aus dem obigen Schaltplan ist es nicht schwer festzustellen, dass Master-Slave-Synchronisation eine bestimmte Verzögerung hat, die die Verzögerungsgröße beeinflusst:
(1) Die Größe der Verzögerung hängt von der Datenmenge ab, die von der letzten Synchronisation bis zur Gegenwart erzeugt wird
(2) Die aktuelle Netzwerksituation zwischen Servern
(3) Der Druck des Master-Slave-Servers selbst (CPU, Speicher, IO usw.)
2. Da der Datenbankdienst in der Regel im Intranet liegt und der Server beim Kauf höher in der Konfiguration ist (mehr als der tatsächliche Bedarf), erfolgt die Synchronisation im Grunde sehr schnell, meist in Millisekunden;
3. In allgemeinen Geschäftsszenarien kann die Millisekunden-Latenz ignoriert werden;
4. Es gibt allgemeine und spezielle Fälle, und einige besondere Situationen erfordern einen Echtzeit-Millisekundenzeit-Zeitunterschied. Hier sind gängige Lösungen für diese besonderen Situationen.
3. Lösungen für Datenlatenz:
1. Schema 1: Schreiben Sie das Programmdouble (schreiben Sie gleichzeitig die Hauptdatenbank und lesen Sie die Datenbank)
2. Schema 2: Lesen Sie das Programm, um die Hauptdatenbank zu überprüfen
3. Schema 3: Schreiben Sie die Hauptdatenbank und schreiben Sie den Cache (setzen Sie eine bestimmte Verfallszeit, die in der Regel etwas länger als die maximale Verzögerung der Datenbanksynchronisation ist), lesen Sie das Programm, lesen Sie den Cache und lesen Sie die Slave-Datenbank
4. Vor- und Nachteile der drei Verfahren:
1. Schema 1: Doppeltes Schreiben verbraucht eine gewisse Leistung, was relativ einfach umzusetzen ist und für Szenarien mit hohem gleichzeitigem Schreiben nicht geeignet ist;
2. Schema 2: Das Leseprogramm beeinflusst die Leistung der Hauptbibliothek, die relativ einfach umzusetzen ist und für Szenarien mit hoher gleichzeitiger Lesezeit nicht geeignet ist.
3. Schema 3: In den meisten Fällen verbrauchen Lesen und Schreiben mehr Schreibleistung, was komplexer zu implementieren ist und sowohl für hohe gleichzeitige Lese- als auch Schreibvorgänge geeignet ist (Cache-Lese- und Schreibvorgänge sind sehr schnell);
【Zusammenfassung】
1. Die Umsetzung ist wichtig, aber noch wichtiger ist die Idee;
2. Viele zugrundeliegende Prinzipien und Ideen sind universell Original:https://blog.csdn.net/zhanghan18 ... le/details/91638443
|