Implementieren Sie die MySQL-Master-Slave-Replikation
【Verwandte Lernempfehlungen: MySQL-Tutorial】
Der Testserver verwendet Centos7.2 für die zugehörige Konfiguration
Der Artikelinhalt bezieht sich auf die zu erreichende Master-Slave-Synchronisation der MySQL-Datenbank Lese-Schreib-Trennung
Übersicht
Damit große Websites eine große Anzahl gleichzeitiger Zugriffe bewältigen können, reicht es bei weitem nicht aus, einen verteilten Lastausgleich auf der Website zu implementieren. Wenn es um die Datengeschäftsschicht und die Datenzugriffsschicht geht, wird die Datenbank unweigerlich zusammenbrechen, wenn die traditionelle Datenstruktur weiterhin verwendet wird oder wenn nur ein Server für die Verarbeitung so vieler Datenbankverbindungsvorgänge verwendet wird, insbesondere wenn die Daten verloren gehen. Die Folgen werden unvorstellbar sein. Zu diesem Zeitpunkt werden wir überlegen, wie Datenbankverbindungen reduziert werden können, und dann zum heutigen Thema übergehen.
Verwenden Sie die Master-Slave-Datenbank, um Lesen und Schreiben zu trennen und so den Druck auf die Master-Datenbank zu teilen. Stellen Sie MySQL auf mehreren Servern bereit, betrachten Sie einen davon als Master-Datenbank und die anderen als Slave-Datenbanken, um eine Master-Slave-Synchronisierung zu erreichen. Die Master-Datenbank ist für aktive Schreibvorgänge verantwortlich, während die Slave-Datenbank nur für aktive Lesevorgänge verantwortlich ist (die Slave-Datenbank führt weiterhin passive Schreibvorgänge aus, um die Datenkonsistenz aufrechtzuerhalten), sodass Datenverluste weitgehend vermieden werden können . Es kann auch Datenbankverbindungen reduzieren und die Belastung der Hauptdatenbank verringern.
MySQL installieren
Ich habe auf die folgenden beiden Artikel verwiesen, um MySQL auf dem Server zu installieren Aufgrund der Remote-Unfähigkeit gibt es einige Fallstricke. Nach der Konfiguration der Datenbank ist zunächst eine Datenbankautorisierung erforderlich, um den Zugriff zu ermöglichen. Öffnen Sie dann die Firewall-Einstellungen, öffnen Sie Port 3306 und erlauben Sie den Zugriff auf die Datenbank über das Datenbankverwaltungstool habe ich die Firewall einfach weiter verwendet, ohne sie einzustellen.
MySQL wurde jeweils auf beiden Testservern installiert und die Testdatenbank wurde gleichzeitig importiert
Master-Slave-Replikationskonfiguration
HauptserverkonfigurationÄndern Sie die MySQL-Konfiguration des Hauptservers in /etc/my.cnf
#在[mysqld]中添加: server-id=1log_bin=master-bin log_bin_index=master-bin.index binlog_do_db=master #server-id 服务器唯一标识。 #log_bin 启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。 #binlog_do_db 指定记录二进制日志的数据库,即需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可。 #binlog_ignore_db 指定不记录二进制日志的数据库,即不需要复制的数据库名,如果有多个数据库,重复设置这个选项即可。 #其中需要注意的是,binlog_do_db和binlog_ignore_db为互斥选项,一般只需要一个即可。
Erstellen Sie Benutzer und Berechtigungen
Gewähren Sie Replikationsslave auf. to masterbackup@'%', identifiziert durch '123456';
% Platzhalter, der angibt, dass jede IP darauf zugreifen kann Konfigurieren Sie den Master-Server bitte für die formale Umgebung. Geben Sie die IP des Slave-Servers an.Mit der Hauptdatenbank verbindenNach Abschluss der Erstellung starten Sie den MySQL-Dienst über den Befehl neu Master Status @Slave Slave Server -Konfiguration anzeigen
#在[mysqld]中添加:
server-id=2relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
#replicate-do-db=master
#server-id 服务器唯一标识,如果有多个从服务器,每个服务器的server-id不能重复,跟IP一样是唯一标识,如果你没设置server-id或者设置为0,则从服务器不会连接到主服务器。
#relay-log 启动MySQL二进制日志,可以用来做数据备份和崩溃恢复,或主服务器挂掉了,将此从服务器作为其他从服务器的主服务器。
#replicate-do-db 指定同步的数据库,如果复制多个数据库,重复设置这个选项即可。若在master端不指定binlog-do-db,则在slave端可用replication-do-db来过滤。
#replicate-ignore-db 不需要同步的数据库,如果有多个数据库,重复设置这个选项即可。
#其中需要注意的是,replicate-do-db和replicate-ignore-db为互斥选项,一般只需要一个即可。
Slave-Synchronisierungsdaten aktivieren#连接master主服务器 mysql> change master to master_host='103.246.246.225',master_port=3306,master_user='masterbackup',master_password='123456',master_log_file='master-bin.000001',master_log_pos=120;#master_host对应主服务器的IP地址。 #master_port对应主服务器的端口。 #master_log_file对应show master status显示的File列:master-bin.000001。 #master_log_pos对应show master status显示的Position列:120。Überprüfen Sie die Slave-Informationen
Verwenden Sie den Befehl show Slave StatusG; überprüfen Sie die Slave-Informationen
Slave_IO_Running und Slave _SQL_Running sind beide ja , was bedeutet, dass die Synchronisierung erfolgreich war.
Testen
Ein Datenelement in eine beliebige Datentabelle einfügen
Die entsprechende Tabelle aus der Datenbank anzeigen
Sie können sehen, dass die entsprechenden Daten erfolgreich aus der Datenbank synchronisiert wurden ! !
Wenn Sie mehr über das Erlernen des Programmierens erfahren möchten, achten Sie bitte auf die Spalte „PHP-Schulung“!Das obige ist der detaillierte Inhalt vonImplementieren Sie die MySQL-Master-Slave-Replikation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Es gibt drei Hauptmethoden, um Umgebungsvariablen in PHP festzulegen: 1. Globale Konfiguration über php.ini; 2. durch einen Webserver (z. B. SetEnv von Apache oder FastCGI_Param von Nginx); 3. Verwenden Sie die Funktion Putenv () in PHP -Skripten. Unter ihnen eignet sich Php.ini für globale und selten ändernde Konfigurationen. Die Webserverkonfiguration eignet sich für Szenarien, die isoliert werden müssen, und Putenv () ist für temporäre Variablen geeignet. Die Persistenz -Richtlinien umfassen Konfigurationsdateien (z. B. Php.ini oder Webserverkonfiguration), .env -Dateien werden mit der DOTENV -Bibliothek und dynamische Injektion von Variablen in CI/CD -Prozessen geladen. Sicherheitsmanagement sensible Informationen sollten hart codiert werden, und es wird empfohlen.

Bei der Auswahl eines geeigneten PHP -Frameworks müssen Sie nach den Projektanforderungen umfassend berücksichtigen: Laravel ist für die schnelle Entwicklung geeignet und bietet eloquentorm- und Blade -Vorlagenmotoren, die für den Datenbankbetrieb und das dynamische Formrending bequem sind. Symfony ist flexibler und für komplexe Systeme geeignet. CodeIgniter ist leicht und für einfache Anwendungen mit hohen Leistungsanforderungen geeignet. 2. Um die Genauigkeit von KI-Modellen sicherzustellen, müssen wir mit einem qualitativ hochwertigen Datentraining, einer angemessenen Auswahl von Bewertungsindikatoren (wie Genauigkeit, Rückruf, F1-Wert), regelmäßiger Leistungsbewertung und Modellabstimmung und sicherstellen, dass die Codequalität durch Testen und Integrationstests der Code sichergestellt wird, um die Eingabedaten kontinuierlich zu überwachen. 3.. Viele Maßnahmen sind erforderlich, um die Privatsphäre der Benutzer zu schützen: Verschlüsseln und speichern sensible Daten (wie AES

PHP spielt die Rolle des Connector- und Brain Center im intelligenten Kundendienst, der für die Verbindung von Front-End-Eingaben, Datenbankspeicher und externen KI-Diensten verantwortlich ist. 2. Bei der Implementierung ist es notwendig, eine mehrschichtige Architektur zu erstellen: Das Front-End empfängt Benutzernachrichten, die PHP-Back-End-Vorverarbeitete und Routes-Anfragen, stimmt zunächst mit der lokalen Wissensbasis überein und verpasst sie, rufen Sie externe KI-Dienste wie OpenAI oder Dialogflow an, um intelligente Antwort zu erhalten. 3. Die Sitzungsverwaltung wird von PHP an MySQL und andere Datenbanken geschrieben, um die Kontext -Kontinuität zu gewährleisten. 4. Integrierte KI -Dienste müssen mit Guzzle HTTP -Anfragen senden, APIKEYs sicher speichern und eine gute Aufgabe der Fehlerbehandlung und -antwortanalyse durchführen. 5. Datenbankdesign muss Sitzungen, Nachrichten, Wissensbasis und Benutzertabellen enthalten, vernünftigerweise Indizes erstellen, Sicherheit und Leistung sicherstellen und Roboterspeicher unterstützen

Um PHP -Container zur Unterstützung der automatischen Konstruktion zu ermöglichen, liegt der Kern in der Konfiguration des Continuous Integration (CI) -Prozesses. 1. Verwenden Sie Dockerfile, um die PHP -Umgebung zu definieren, einschließlich grundlegender Bild-, Erweiterungsinstallations-, Abhängigkeitsmanagement- und Berechtigungseinstellungen. 2. Konfigurieren Sie CI/CD-Tools wie GitLabci und definieren Sie die Erstell-, Test- und Bereitstellungsstadien über die Datei .gitlab-ci.yml, um automatische Konstruktion, Test und Bereitstellung zu erreichen. 3.. Integrieren Sie Testframeworks wie Phpunit, um sicherzustellen, dass die Tests automatisch nach Codeänderungen ausgeführt werden. 4. Verwenden Sie automatisierte Bereitstellungsstrategien wie Kubernetes, um die Bereitstellungskonfiguration durch die Datei bereitzustellen. 5. Dockerfile optimieren und mehrstufige Konstruktionen übernehmen

Die Kernidee von PHP, das KI für die Analyse von Videoinhalten kombiniert, besteht darin, PHP als Backend "Kleber" zu dienen, zuerst Video in Cloud -Speicher hochzuladen und dann AI -Dienste (wie Google CloudVideoai usw.) für eine asynchrone Analyse aufzurufen. 2. PHP analysiert die JSON -Ergebnisse, extrahieren Sie Personen, Objekte, Szenen, Sprach- und andere Informationen, um intelligente Tags zu generieren und in der Datenbank zu speichern. 3.. 4. Häufige Herausforderungen sind eine große Dateiverarbeitung (direkt über die Cloud-Speicherung mit vorsignierten URLs übertragen), asynchrone Aufgaben (Einführung von Nachrichtenwarteschlangen), Kostenkontrolle (On-Demand-Analyse, Budgetüberwachung) und Ergebnisoptimierung (Label-Standardisierung); 5. Smart Tags verbessern sich erheblich visuell

Der Aufbau einer unabhängigen Umgebung für PHP -Aufgabencontainer kann über Docker implementiert werden. Die spezifischen Schritte sind wie folgt: 1. Installieren Sie Docker und DockerComponpose als Grundlage; 2. Erstellen Sie ein unabhängiges Verzeichnis, um Dockerfile und Crontab -Dateien zu speichern. 3. Schreiben Sie Dockerfile, um die PHPCLI -Umgebung zu definieren und Cron und die erforderlichen Erweiterungen zu installieren. 4. Schreiben Sie eine Crontab -Datei, um Zeitaufgaben zu definieren. 5. Schreiben Sie ein Docker-compose.yml-Mount-Skriptverzeichnis und konfigurieren Sie Umgebungsvariablen. 6. Starten Sie den Container und überprüfen Sie das Protokoll. Im Vergleich zu Timing -Aufgaben in Webcontainern haben unabhängige Container die Vorteile der Ressourcenisolation, der reinen Umgebung, der starken Stabilität und einer einfachen Expansion. Gewährleistung der Protokollierung und Fehleraufnahme

Wählen Sie die Protokollierungsmethode aus: In der frühen Phase können Sie den integrierten Fehler () für PHP verwenden. Wechseln Sie nach der Erweiterung des Projekts auf reife Bibliotheken wie Monolog, unterstützen Sie mehrere Handler und Protokollebenen und stellen Sie sicher, dass das Protokoll Zeitstempel, Ebenen, Dateizeilennummern und Fehlerdetails enthält. 2. Entwurfsstruktur: Eine kleine Menge an Protokollen kann in Dateien gespeichert werden. Wenn eine große Anzahl von Protokollen vorhanden ist, wählen Sie eine Datenbank, wenn eine große Anzahl von Analysen vorhanden ist. Verwenden Sie MySQL/Postgresql zu strukturierten Daten. Elasticsearch Kibana wird für semi-strukturierte/unstrukturierte empfohlen. Gleichzeitig wird es für Backup- und regelmäßige Reinigungsstrategien formuliert. 3. Entwicklungs- und Analyseschnittstelle: Sie sollten Such-, Filter-, Aggregations- und Visualisierungsfunktionen haben. Es kann direkt in Kibana integriert werden oder die PHP-Framework-Diagrammbibliothek zur Entwicklung der Selbstentwicklung verwenden und sich auf die Einfachheit und einfache Schnittstelle konzentrieren.

Um das Problem der Inkonsistenz zwischen PHP -Umgebung und Produktion zu lösen, besteht der Kern darin, die Container- und Orchestrierungsfunktionen von Kubernetes zu verwenden, um die Umweltkonsistenz zu erreichen. Die spezifischen Schritte sind wie folgt: 1. Erstellen Sie ein einheitliches Docker -Bild, einschließlich aller PHP -Versionen, Erweiterungen, Abhängigkeiten und Webserverkonfigurationen, um sicherzustellen, dass dasselbe Bild in der Entwicklung und Produktion verwendet wird. 2. Verwenden Sie Kubernetes 'configMap und geheim, um nicht sensitive und empfindliche Konfigurationen zu verwalten und eine flexible Umstellung verschiedener Umgebungskonfigurationen durch Volumenmontage oder Umgebungsvariableninjektion zu erreichen. 3. Gewährleistung der Konsistenz des Anwendungsverhaltens durch Unified Kubernetes -Deployment -Definitionsdateien (z. B. Bereitstellung und Dienst) und in die Versionskontrolle einbeziehen; 4.
