Übersicht über die geteilte Datenbanklösung
Adobe Commerce bietet verschiedene Skalierbarkeitsvorteile, darunter die Möglichkeit, drei separate Master-Datenbanken für verschiedene Funktionsbereiche der Commerce-Anwendung zu verwenden.
Checkout-, Bestellungen- und Produktdaten können jeweils eine separate Master-Datenbank verwenden, die Sie optional replizieren können. Diese Trennung skaliert die Auslastung unabhängig von Website-Kassengänge, Bestellverwaltungsaktivitäten, Website-Browsing und Merchandising-Aktivitäten, je nach Ihren Anforderungen. Diese Änderungen bieten eine erhebliche Flexibilität bei der Skalierung der Datenbankschicht.
Die Klasse ResourceConnections
stellt die einheitliche MySQL-Datenbankverbindung zur Commerce-Anwendung bereit. Für Abfragen an die Master-Datenbanken implementieren wir das Datenbankmuster Command Query Responsibility Segregation (CQRS) . Dieses Muster verarbeitet die Logik zum Routing der Lese- und Schreibabfragen in die entsprechenden Datenbanken. Entwickler müssen nicht wissen, welche Konfiguration verwendet wird und es gibt keine separaten Lese- und Schreibdatenbankverbindungen.
Wenn Sie eine optionale Datenbankreplikation einrichten, haben Sie die folgenden Vorteile:
- Datensicherung
- Datenanalyse ohne Beeinträchtigung der Master-Datenbank
- Skalierbarkeit
MySQL-Datenbanken replizieren asynchron, was bedeutet, dass Slaves nicht dauerhaft verbunden werden müssen, um Updates vom Master zu erhalten.
Die folgende Abbildung zeigt, wie diese Funktion funktioniert.
In Magento Open Source wird nur eine Masterdatenbank verwendet.
Adobe Commerce verwendet drei Master-Datenbanken und eine konfigurierbare Anzahl von Slave-Datenbanken zur Replikation. Adobe Commerce verfügt über eine einzige Schnittstelle für Datenbankverbindungen, was zu einer schnelleren Leistung und besseren Skalierbarkeit führt.
Konfigurationsoptionen
Aufgrund der Art und Weise, wie die Aufspaltungsdatenbankleistung entworfen wird, kann Ihr benutzerdefinierter Code und die installierten Komponenten nicht einen der folgenden Schritte ausführen:
- Direktes Schreiben in die Datenbank (stattdessen müssen Sie die Adobe Commerce-Datenbankschnittstelle verwenden)
- Verwenden von JOINs, die sich auf die Verkaufs- oder Kursdatenbanken auswirken
- Fremdschlüssel für Tabellen in den Kasse-, Verkaufs- oder Hauptdatenbanken verwenden
- Bitten Sie die Komponentenentwickler, ihre Komponenten zu aktualisieren.
- Verwenden Sie die Komponenten unverändert ohne die aufgespaltete Datenbanklösung.
- Entfernen Sie die Komponenten, damit Sie die geteilte Datenbanklösung verwenden können.
Dies bedeutet auch Folgendes:
-
Konfigurieren Sie die geteilte Datenbanklösung vor, die Commerce in die Produktion einführt.
Adobe empfiehlt die Konfiguration von geteilten Datenbanken so bald wie möglich nach der Installation der Commerce-Software.
-
Konfigurieren Sie die geteilte Datenbanklösung manuell.
Sie müssen diese Aufgabe ausführen, wenn Sie bereits Komponenten installiert haben oder Commerce bereits in Produktion ist. (Aktualisieren Sie kein Produktionssystem. Nehmen Sie die Aktualisierungen in einem Entwicklungssystem vor und synchronisieren Sie die Änderungen, nachdem Sie sie getestet haben.)
note warning WARNING Sie müssen die beiden zusätzlichen Datenbankinstanzen manuell sichern. Commerce sichert nur die Hauptdatenbankinstanz. Die Optionen magento setup:backup --db
und "Admin"sichern die zusätzlichen Tabellen nicht.
Voraussetzungen
Für die geteilte Datenbank müssen Sie drei MySQL-Master-Datenbanken auf einem beliebigen Host einrichten (alle drei auf dem Commerce-Server, jede Datenbank auf einem separaten Server usw.). Dies sind die Master -Datenbanken und werden wie folgt verwendet:
- Eine Master-Datenbank für Checkout-Tabellen
- Eine Masterdatenbank für Verkaufstabellen (auch als Order Management-System oder OMS, Tabellen bezeichnet)
- Eine Master-Datenbank für die übrigen Commerce 2-Anwendungstabellen
Darüber hinaus können Sie optional eine beliebige Anzahl von Slave-Datenbanken einrichten, die als Lastenausgleich und Sicherungen dienen.
In diesem Handbuch wird beschrieben, wie Sie die Master-Datenbanken einrichten. Wir stellen Ihnen Beispielkonfigurationen und -referenzen zur Verfügung, um Slave-Datenbanken bei Bedarf einzurichten.
In diesem Handbuch werden die drei Master-Datenbanken benannt:
magento_quote
magento_sales
magento
(Sie können Ihre Datenbanken beliebig benennen.)