Ulf Wendel

PHP mysqlnd plugins – eine Alternative zum MySQL Proxy ?!

MySQL Proxy ist eine einzigartige und herausragende Software, die mit wenig Aufwand Probleme lösen kann, welche ansonsten nur mit massiven Änderungen an bestehenden Anwendungen gelöst werden könnten. Wie jeder Proxy eröffnet MySQL Proxy eine neue Schicht zwischen der Anwendung und der MySQL Datenbank. Die neue Schicht is klar getrennt von allen bestehenden, kann transparent agieren und verlangt damit keinerlei Änderungen an bestehender Infrastruktur.

Seit einigen Monaten ist in der PHP mysqlnd-Bibliothek von PHP 5.3 eine Alternative zum MySQL Proxy entstanden: mysqlnd plugins. PHP’s mysqlnd-Bibliothek kann von den PHP MySQ- Extensions (ext/mysql, ext/mysqli, PDO_MYSQL) als Alternative zur MySQL Client Library ("libmysql") verwendet werden. Seit PHP 5.3 ist mysqlnd ein Bestandteil des PHP-Quellcodes. mysqlnd implementiert das MySQL Client-Server Protokoll und stellt es mittels der MySQL C API den PHP-Extensions zur Verfügung. mysqlnd arbeitet somit innerhalb des PHP-Interpreters.

Drupal, phpMyFAQ, phpMyAdmin, Oxid, …
|
ext/mysql, ext/mysqli, ext/PDO_MYSQL
Mysqlnd
Mysqlnd plugin
Load Balancing Monitoring Performance
|
MySQL Server

Ähnlich dem MySQL Proxy agiert mysqlnd auf einer Schicht zwischen der Anwendung und der MySQL Datenbank. Unter Verwendung der mysqlnd Plugin API kann mysqlnd um neue Funktionalitäten erweitert werden. Damit ist es möglich clientseitige “Proxies” in Form von mysqlnd Plugins zu erstellen. Die mysqlnd Plugins können ähnliche Aufgaben übernehmen wie MySQL Proxy: Lastverteilung, Ãœberwachung, Performanz bezogene Aufgaben.

Die unterschiedlichen Architekturen von MySQL Proxy und mysqlnd Plugins ergänzen und bereichern sich gegenseitig. Einige Limitation des MySQL Proxy können mit mysqlnd Plugins umgangen werden (kein Single-Point-Of-Failure, keine neue Programmiersprache mit Lua). Lesen Sie mehr dazu in den obigen Slides oder im ausführlicheren englischsprachigen Blogposting.

Rückmeldungen und Diskussionsbeiträge sind stets willkommen!

2 Comments