SMProxy, ein von Swoole entwickelter MySQL-Datenbankverbindungspool basierend auf dem MySQL-Protokoll.
子山
子山 2019-01-29 14:50:17
0
0
1374

SMProxy

Swoole MySQL Proxy

Ein von Swoole entwickelter MySQL-Datenbankverbindungspool basierend auf dem MySQL-Protokoll.

Prinzip

Speichern Sie die Datenbankverbindung als Objekt im Speicher. Wenn der Benutzer zum ersten Mal auf die Datenbank zugreifen muss, wird später keine neue Verbindung hergestellt, sondern ein inaktives Verbindungsobjekt aus dem Verbindungspool entnommen werden. Nach der Verwendung schließt der Benutzer die Verbindung nicht, sondern stellt sie für die nächste Anfrage wieder in den Verbindungspool zurück. Der Verbindungsaufbau und -abbau wird vom Verbindungspool selbst verwaltet.

Gleichzeitig können Sie auch die anfängliche Anzahl von Verbindungen im Verbindungspool, die Ober- und Untergrenze der Verbindungen, die maximale Anzahl der Verwendungen jeder Verbindung, die maximale Leerlaufzeit usw. steuern, indem Sie die Parameter von festlegen Der Verbindungspool. Es kann auch die Anzahl, Nutzung usw. von Datenbankverbindungen über seinen eigenen Verwaltungsmechanismus überwachen. Wenn die maximale Anzahl von Verbindungen überschritten wird, wird die Coroutine angehalten und fortgesetzt, bis eine Verbindung geschlossen wird, um den Vorgang fortzusetzen.

Funktionen

Unterstützt den Datenbankverbindungspool, der den durch PHP verursachten Datenbankverbindungsengpass effektiv lösen kann. Unterstützt den SQL92-Standard und verwendet die Coroutine-Planung, um mehrere Datenbankverbindungen, mehrere Datenbanken und mehrere Benutzer zu unterstützen Entspricht dem nativen MySQL-Protokoll, einem sprach- und plattformübergreifenden allgemeinen Middleware-Agent, der MySQL-Transaktionen unterstützt. Die Protokollversion ist perfekt mit MySQL4.1 - 8.0 kompatibel und mit allen wichtigen Frameworks kompatibel, wodurch die Leistung nahtlos verbessert wird. Ursprüngliche Designabsicht

PHP verfügt nicht über einen Verbindungspool, daher ist die Datenbank bei hoher Parallelität voller Verbindungen und Datenbank-Middleware wie Mycat verfügt über einige unbrauchbare SQL-Anweisungen. Beispielsweise wird das Hinzufügen von Stapeln nicht unterstützt und ist zu aufgebläht . Deshalb habe ich diese leichte Middleware selbst geschrieben, die nur Verbindungspooling und Lese-/Schreibtrennung unterstützt. Sie nutzt Swoole-Coroutine-Planung und HandshakeV10-Protokollweiterleitung, um das Programm stabiler zu machen. Es ist nicht erforderlich, alle SQL-Paketkörper wie Mycat zu analysieren, was die Komplexität erhöht .

Entwicklung und Diskussion

Dokumente:

https://smproxy.louislivi.com

Wenn Sie blockiert sind, besuchen Sie bitte:

https://smproxy.gitee.louislivi.com

QQ-Gruppe: 722124111 Alle Willkommen sind die Typen Issue und Pull Request.

Mitwirkendenliste

子山
子山

Antworte allen(0)
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage