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.comWenn Sie blockiert sind, besuchen Sie bitte:
https://smproxy.gitee.louislivi.comQQ-Gruppe: 722124111 Alle Willkommen sind die Typen Issue und Pull Request.
Mitwirkendenliste