Es gibt viele Lese-/Schreibtrennungsarchitekturen für MySQL. Bei Baidu werden fast alle davon mit mysql_proxy implementiert. Da der Proxy auf Basis der Skriptsprache Lua implementiert ist, meinen viele Internetnutzer, der Proxy sei ineffizient und instabil und werde für die Verwendung in einer Produktionsumgebung nicht empfohlen. Amoeba ist ein von Alibaba entwickeltes Projekt zur Trennung von Lese- und Schreibvorgängen in Datenbanken (die Trennung von Lese- und Schreibvorgängen ist nur eine kleine Funktion davon). Da es auf Java basiert, muss JDK in der laufenden Umgebung installiert werden. Vorbereitende Vorbereitungen: 1. Zwei Datenbanken, eine Master- und eine Slave-Datenbank, Master-Slave-Synchronisierung;
Alle Serverbetriebssysteme sind CentOS7; 2. Konfigurieren und installieren Sie JDK auf dem Server, auf dem sich Amoeba befindet. Ich habe jdk1.8 installiert; Der Pfad lautet: JAVA_HOME=/usr/local/java/jdk1.8.0_131 Das oben genannte muss von Ihnen selbst erstellt und konfiguriert werden, Master und Slave funktionieren normal, fügen Sie JDK-Umgebungsvariablen hinzu: /etc/profile; Es gibt viele Möglichkeiten, Amoeba zu installieren. Ich werde hier nicht ins Detail gehen. Ich habe das Installationspaket von amoeba-mysql-3.0.5-RC-distribution heruntergeladen und es einfach zur Verwendung entpackt. Entpackverzeichnis: /usr/local/amoeba/ Offensichtlich ist „conf“ die Konfigurationsdatei und „bin“ das Startprogramm. Wie bereits erwähnt, verfügt Amoeba über mehr Funktionen als nur die Lese-/Schreibtrennung. Wenn Sie jedoch nur die Lese-/Schreibtrennungsfunktion verwenden, müssen Sie nur diese Dateien konfigurieren: conf/dbServers.xml, conf/amoeba.xml und bin/launcher. conf/dbServers.xml: `<Eigenschaftsname="Port">3306</Eigenschaftsname> #Stellen Sie den Port der MySQL-Datenbank ein, mit der Amoeba eine Verbindung herstellen möchte. Der Standardwert ist 3306 <Eigenschaftsname="Schema">Testdb</Eigenschaft> #Standarddatenbank festlegen. Beim Herstellen einer Verbindung mit Amoeba muss die Operationstabelle den Datenbanknamen explizit angeben, d. h. die Methode dbname.tablename verwenden. Die Verwendung von dbname zum Angeben der Standarddatenbank wird nicht unterstützt, da die Operation an jeden Backend-DBserver gesendet wird <Eigenschaftsname="Benutzer">test1</Eigenschaft> #Legen Sie das Konto und das Passwort für Amoeba fest, damit es eine Verbindung zum Backend-Datenbankserver herstellen kann. Daher müssen Sie diesen Benutzer auf allen Backend-Datenbanken erstellen und den Amoeba-Server autorisieren, eine Verbindung herzustellen <property name="password">111111</property> <property name="maxActive">500</property> #Maximale Anzahl an Verbindungen, Standard 500 <property name="maxIdle">500</property> #Maximale Anzahl inaktiver Verbindungen<property name="minIdle">1</property> #Neueste Anzahl inaktiver Verbindungen<dbServer name="writedb" parent="abstractServer"> #Richten Sie eine beschreibbare Backend-Datenbank ein, die hier als writedb definiert wird. Dieser Name kann beliebig gewählt werden und wird später verwendet<property name="ipAddress">172.22.10.237</property> #Legen Sie die IP des beschreibbaren Backend-DBservers fest <dbServer name="slave01" parent="abstractServer"> #Legen Sie die vom Backend lesbare Datenbank fest <property name="ipAddress">10.4.66.58</property> <dbServer name="myslave" virtual="true"> #Richten Sie einen virtuellen DB-Server ein, der eigentlich einer DB-Server-Gruppe entspricht. Hier werden alle lesbaren Datenbank-IPs in eine Gruppe eingefügt und der Gruppenname lautet myslave <property name="loadbalance">1</property> #Wählen Sie den Planungsalgorithmus aus. 1 bedeutet Replikationsbalance, 2 bedeutet Gewicht und 3 bedeutet HA. Wählen Sie hier 1 aus. <property name="poolNames">slave01</property> #myslave Gruppenmitglied` conf/amoeba.xml: <Eigenschaftsname="Port">8066</Eigenschaft> #Stellen Sie den Port ein, auf dem Amoeba lauscht. Der Standardwert ist 8066. <Eigenschaftsname="IP-Adresse">127.0.0.1</Eigenschaft> #Konfigurieren Sie die Abhörschnittstelle. Wenn nicht festgelegt, werden standardmäßig alle IP-Adressen abgehört. # Geben Sie das hier festgelegte Konto an, damit der Client eine Verbindung zu Amoeba herstellen kann (das Konto und das Kennwort hier haben nichts mit dem Kennwort zu tun, das von Amoeba für die Verbindung mit dem Backend-Datenbankserver verwendet wird). <property name="Benutzer">root</property> <property name="password">123456</property> <Eigenschaftsname="defaultPool">meinSlave</Eigenschaft> #Legen Sie den Standardpool für Amoeba fest, hier auf writedb <Eigenschaftsname="writePool">Master</Eigenschaft> #Diese beiden Optionen sind standardmäßig abgemeldet und müssen auskommentiert werden. Sie werden hier verwendet, um die beiden zuvor definierten Lese-/Schreibpools anzugeben <property name="readPool">slave01</property> bin/launcher: #Starten Sie das Skript, Sie müssen die JDK-Umgebungsvariablen konfigurieren; # Fügen Sie nach dem Kommentar die folgende Zeile hinzu: JAVA_HOME=/usr/local/java/jdk1.8.0_131 Launcher ist ein Startskript. Wenn JAVA_HOME nicht konfiguriert ist, erhalten Sie möglicherweise einen Fehler, selbst wenn Sie die Umgebungsvariablen in /etc/profile konfigurieren: JDK-Umgebungsvariablen sind nicht konfiguriert. Es gibt auch eine Konfigurationsdatei: jvm.properties #Speichernutzungsprofil# Der Parameter -Xss hat eine Mindestwertanforderung, die größer als 228 sein muss, um die JVM zu starten #Überarbeiten: JVM_OPTIONS="-server -Xms1024m -Xmx1024m -Xss256k -XX:PermSize=16m -XX:MaxPermSize=96m" Erfahrene Anwender wissen, dass alles, was mit JDK zu tun hat, grundsätzlich mit der Speicheroptimierung zusammenhängt, und Amoeba bildet hier keine Ausnahme. Nun kann es losgehen: Nach dem Start können Sie den 8066-Port der Maschine sehen: Zu diesem Zeitpunkt müssen Sie nur über Port 8066 der lokalen IP und das in Ihrer Konfigurationsdatei festgelegte Konto und Kennwort eine Verbindung zur Datenbank herstellen. Die geschriebenen Daten werden an den Master gesendet und die gelesenen Daten werden vom Slave gelesen. prüfen: Schließen Sie die Masterdatenbank, damit Sie sie weiterhin lesen können: Führen Sie den Befehl „Select“ aus, um sie anzuzeigen. oder Schließen Sie die Slave-Datenbank, und Sie können weiterhin darin schreiben: Führen Sie die Befehle „Update“ und „Inster“ aus. Das könnte Sie auch interessieren:
|
<<: So erstellen Sie einen pptpd-Dienst in Alibaba Cloud Ubuntu 16.04
>>: So gestalten Sie Ihre JavaScript-Funktionen eleganter
Frage Der Tomcat-Container wurde erfolgreich mit ...
Inhaltsverzeichnis 1. Vorbereitende Maßnahmen 1.1...
x-ua-compatible wird verwendet, um das Modell für...
Ergebnisse erzielen Implementierungscode <h1&g...
einführen Wenn Sie einen OSS-Speicherdienst wie A...
1. Installieren Sie zuerst die Pagode Installatio...
Umsetzungsideen Ganz außen ist ein großer Kreis (...
Inhaltsverzeichnis 1. Funktion Entprellung 1. Was...
Code kopieren Der Code lautet wie folgt: li {Brei...
Inhaltsverzeichnis 1. Geltungsbereich 1. Globaler...
Dieser Artikel enthält das ausführliche Installat...
Das Hinzufügen einer Hintergrundbildsteuerung zu ...
<br />Vorheriger Artikel: Sieben Prinzipien ...
In manchen Vorstellungsgesprächen werden häufig F...
Wie füge ich jedes Mal eine Ladeanimation hinzu, ...