Einführung Teil 1: Am Anfang geschrieben OneProxy ist eine verteilte Datenzugriffsschicht, die vollständig unabhängig von der zivilen Software entwickelt wurde. Sie hilft Benutzern dabei, schnell verteilte Datenbank-Middleware zu erstellen, die Sharding auf MySQL/PostgreSQL-Clustern unterstützt. Es handelt sich außerdem um eine SQL-Firewall-Software mit SQL-Whitelist- (Anti-SQL-Injection) und IP-Whitelist-Funktionen. Es verwendet den mit MySQL Proxy konsistenten Reverse-Protokoll-Ausgabemodus, der sehr einfach, transparent und für Anwendungen benutzerfreundlich ist, und macht komplexe Lösungen wie Datenbank-Failover, Lese-/Schreib-Aufteilung und horizontale Partitionierung, die Benutzer fürchten, äußerst einfach und kontrollierbar! Basierend auf dem Libevent-Mechanismus kann eine einzelne Instanz 250.000 SQL-Weiterleitungsfunktionen erreichen. Ein OneProxy-Knoten kann den gesamten MySQL-Cluster steuern und zur Geschäftsentwicklung beitragen. Teil 2: Einführung in die Umgebung HE1:192.168.1.248 Slave1 HE2:192.168.1.249 Slave2 HE3:192.168.1.250 Meister HE4:192.168.1.251 Ein Proxy Umweltkonstruktion Teil 1: Oneproxy installieren [root@HE4 ~]# tar xvf oneproxy-rhel5-linux64-v5.8.5-ga.tar.gz [root@HE4 oneproxy]# ls bin conf demo.sh log oneproxy.service README testadmin.sql testautocommit.sql testproxy.sql trantest.sql Teil 2: Erstellen einer Master-Slave-Umgebung Die Architektur dieses Artikels besteht aus einem Master und zwei Slaves, HE3 ist der Master und HE1 und HE2 sind die Slaves. Der Aufbau von Master-Slave ist nicht der Schwerpunkt dieses Artikels. Sie können ihn bei Bedarf verschieben: So erstellen Sie schnell MySQL Master-Slave mit mysqlreplicate Teil 3: Oneproxy konfigurieren Die Demo im Verzeichnis ist das anfängliche Startskript, oneproxy.service ist das Start- und Stoppskript, in der neuen Version von oneproxy ist proxy.cnf im Ordner conf die Konfigurationsdatei [root@HE4 oneproxy]# cat demo.sh #/bin/bash # exportiere ONEPROXY_HOME=/root/oneproxy # valgrind --leak-check=voll \ ${ONEPROXY_HOME}/bin/oneproxy --defaults-file=${ONEPROXY_HOME}/conf/proxy.conf Wir ändern ONEPROXY_HOME in demo.sh in das Verzeichnis, in dem oneproxy entpackt ist [root@HE4 oneproxy]# cat oneproxy.service #!/bin/bash # chkconfig: -30 21 # Beschreibung: OneProxy-Dienst. # Quellfunktionsbibliothek . /etc/init.d/Funktionen # OneProxy-Einstellungen ONEPROXY_HOME=/root/oneproxy ONEPROXY_SBIN="${ONEPROXY_HOME}/bin/oneproxy" ONEPROXY_CONF="${ONEPROXY_HOME}/conf/proxy.conf" ONEPROXY_PID="${ONEPROXY_HOME}/log/oneproxy.pid" RETVAL=0 prog="OneProxy" Start() { echo -n $"$prog wird gestartet … " Daemon $ONEPROXY_SBIN --defaults-file=$ONEPROXY_CONF RETVAL=$? Echo } stoppen() { echo -n $"$prog wird gestoppt … " wenn [ -e ${ONEPROXY_PID} ]; dann Daemon beenden -INT $(cat ${ONEPROXY_PID}) RETVAL=$? fi Echo } neu starten(){ stoppen Schlaf 1 Start } Fall "$1" in Start) Start ;; stoppen) stoppen ;; Neustart) Neustart ;; *) echo $"Verwendung: $0 {start|stop|restart}" RETVAL=1 esac $RETVAL beenden Ändern Sie gleichzeitig ONEPROXY_HOME in oneproxy.service beim Dekomprimieren in das Verzeichnis. Rufen Sie das Bin-Verzeichnis in oneproxy auf und verwenden Sie mysqlpwd, um das Passwort zu verschlüsseln [root@HE4 oneproxy]# cd bin/ [root@HE4 bin]# ls mysqlpwd oneproxy [root@HE4 bin]# ./mysqlpwd MANAGER 1C6D087BA5D2607A27DECB2F2AFE247E911E877A Bearbeiten Sie den Inhalt von proxy.cnf [root@HE4 conf]# cat proxy.conf [ein Proxy] Keepalive = 1 Ereignis-Threads = 4 Proxy-Gruppenrichtlinie.2 = Test: Lese-Slave Protokolldatei = log/oneproxy.log pid-Datei = log/oneproxy.pid lck-Datei = log/oneproxy.lck Proxy-Auto-Readonly = 1 Proxy-Weiterleitungs-ClientTip = 1 Proxy-Trans-Debug = 1 Proxy-Adresse = :3307 mysql-version = 5.7.16 Proxy-Master-Adressen.1 = 192.168.1.250:3306@test Proxy-Slave-Adressen.2 = 192.168.1.248:3306@test Proxy-Slave-Adressen.3 = 192.168.1.249:3306@test Proxy-Benutzerliste = sys_admin/1C6D087BA5D2607A27DECB2F2AFE247E911E877A@test Proxy-Benutzergruppe = test:sys_admin/1C6D087BA5D2607A27DECB2F2AFE247E911E877A@test Proxy-Teil-Vorlage = conf/template.txt Proxy-Teiltabellen.1 = conf/Teil.txt Proxy-Part-Tables.2 = conf/part2.txt Proxy-Teiltabellen.3 = conf/cust1.txt Proxy-Zeichensatz = utf8_bin Proxy-Sicherer-Client = 127.0.0.1 # Proxy-Lizenz = 32C54560E06EFF3E Proxy-HTTP-Server = :8080 Proxy-httptitle = OneProxy-Monitor Teil 4: Oneproxy starten [root@HE4 oneproxy]# ./demo.sh [root@HE4 oneproxy]# ./oneproxy.service neu starten OneProxy wird gestoppt ... [OK] OneProxy wird gestartet ... [OK] prüfen Teil 1: Oneproxy-Statusüberprüfung Öffnen Sie den Browser, um Port 192.168.1.251:8080 zu öffnen und die Oneproxy-Verwaltungsseite anzuzeigen. Hier können Sie verschiedene Statusinformationen des Masters und Slaves einsehen. Teil 2: Lastausgleich und Überprüfung der Lese-/Schreibtrennung [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"wählen Sie @@hostname aus;" mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. +------------+ | @@Hostname | +------------+ | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"wählen Sie @@hostname aus;" mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. +------------+ | @@Hostname | +------------+ | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"wählen Sie @@hostname aus;" mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. +------------+ | @@Hostname | +------------+ | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"wählen Sie @@hostname aus;" mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. +------------+ | @@Hostname | +------------+ | HE2 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"wählen Sie @@hostname aus;" mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. +------------+ | @@Hostname | +------------+ | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"begin;select @@hostname;commit;" mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. +------------+ | @@Hostname | +------------+ | HE3 | +------------+ [root@HE1 ~]# mysql -usys_admin -pMANAGER -h192.168.1.251 -P3307 -e"begin;select @@hostname;commit;" mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein. +------------+ | @@Hostname | +------------+ | HE3 | +------------+ Es ist ersichtlich, dass es kein Problem gibt, wenn HE1 und HE2 als Lastenausgleichsmodule verwendet werden, und dass es kein Problem gibt, wenn HE3 als Schreibserver verwendet wird. --Zusammenfassen-- OneProxy arbeitet mit MySQL zusammen, um Lese-/Schreibtrennung und Lastausgleichsexperimente zu realisieren und wurde erfolgreich aufgebaut. Oneproxy verfügt auch über die Funktion zum Sharding von Datenbanken und Tabellen, die in Zukunft weiter untersucht werden. Aufgrund der begrenzten Kenntnisse des Autors und der Eile, den Artikel zu schreiben, enthält der Artikel zwangsläufig einige Fehler oder Ungenauigkeiten. Ich bitte die Leser aufrichtig, etwaige Unangemessenheiten zu kritisieren und zu korrigieren. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Eine kurze Zusammenfassung aller Kapselungsmethoden in Vue
>>: Schritte zur Linux-Bridge-Methode zum Überbrücken zweier virtueller VirtualBox-Netzwerke
In diesem Artikel wird die Erstellung einer USB-S...
Wenn über dieses Problem gesprochen wird, fragen s...
Kurz gesagt: Wenn Sie einen Cloud-Server eines be...
Die weltberühmte virtuelle Maschinensoftware VMwa...
Das Core Asset Management Project erfordert, dass...
Meta ist ein Hilfstag im Kopfbereich der HTML-Spra...
1. Ein-Klick-Installation des Mysql-Skripts [root...
1. Schrifteigenschaften Farbe, gibt die Farbe des...
Problemhintergrund: Es ist erforderlich, einen Sc...
Einführung: Die Überprüfung des Ziehens von Schie...
Inhaltsverzeichnis 1. Globale Wache 1.1 Globaler ...
Inhaltsverzeichnis 1. Inhaltsübersicht 2. Konzept...
Inhaltsverzeichnis Einführung: Installation von E...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Trotz Props und Events müssen Sie manchmal immer ...