phpbar.de logo

Mailinglisten-Archive

[php] Scriptaufbau für Mehrserverbetrieb

[php] Scriptaufbau für Mehrserverbetrieb

Sascha Grossenbacher saschagros at bluewin.ch
Sam Dez 16 21:54:58 CET 2006


Andreas Fay wrote:
> Da tun sich mir aber noch ein paar Fragen dazu auf:
>
> Wenn ich nun mehrere Server habe, wie läuft dann die Synchronisation
> der Daten ab, gerade auch bei mehreren Datenbanken?!
> Wenn das kein Problem ist, dann wäre es eigentlich doch easy, wenn man
> mehrere Server zur Verfügung stellt und diese dann einfach die Arbeit
> von einem machen lässt. Das wäre zumindest am nahesten an dem System
> meiner bisherigen Websiten.
>
> Beste Grüße,
> Andreas
>
>   
Das ist die Aufgabe der Datenbank. Bei MySQL gibt es dazu zum Beispiel
das Master - Slave Konzept.
Ein Server ist der Master, auf diesem werden Update/Insert/Delete-Querys
geschickt. Dieser Server verteilt die Daten an mehrere Slave-Server, an
die bloss Select-Querys geschickt werden. Bei einer normalen Anwendung
liest man viel mehr Daten aus, als das sie verändert werden.

Siehe Wikipedia:
http://de.wikipedia.org/wiki/Bild:Wikimedia-servers-2006-05-09.png

Allgemein fallen mir zum Thema folgende Punkte ein:

- Saubere Trennung von Code/Design mit Templates, vereinfacht die
Wartung und Erweiterung

- Caching: Es gibt 3 Stufen von Caching:
DB-Querys (Ein SELECT COUNT(*) FROM user muss nicht mehrmals pro Sekunde
durchgeführt werden) bzw. allgemein interne Berechnungen
Fertig generierte Teile einer Website (z.B. Navigation)
Komplett statische Seiten (Zumindest über einen bestimmten Zeitraum),
das kann auch mit Squid-Servern geschehen

- Datenbank-Design gut durchdenken, wie schon gesagt wurde, ev. auf hohe
Normalisierung verzichten, Queries mit EXPLAIN prüfen

- Optimimieren, mit einem Profiler wie xdebug Engpässe in der Anwendung
finden und beseitigen

- Einen Compiler-Cache wie APC oder eAccelerator einsetzen, kann eine
Anwendung besonders bei vielen Dateien enorm beschleunigen. Bzw die
entsprechenden Zend Produkte, falls die Mittel vorhanden sind ;)

Gruss Sascha

php::bar PHP Wiki   -   Listenarchive