|
|
Trick 1: Installation eines Clusters zur Lastverteilung
- Willkommen zu unserem ersten Trick. Aufgrund hoher Zugriffszahlen werden wir für die Adressverwaltung einen zweiten Server installieren. Wir benutzen dafür den integrierten Zope-Cluster: Zope Enterprise Objects, kurz ZEO.
- Ich beginne damit den vorhandenen Zope-Server anzuhalten.
- Mit Hilfe des Skripts "makezeoinstance" erzeuge ich eine ZEO-Server-Konfiguration. Als Parameter gebe ich den Pfad für den neuen ZEO-Server an.
- Ich verschiebe die Datenbank unseres Zope-Servers in den Datenbereich des ZEO-Servers.
- Mit dem Skript "zeocontrol" kontrolle ich den ZEO-Server.
- Der Befehl "start" startet den Server. Mit dem Befehl "logtail" prüfe ich, dass der ZEO-Server korrekt hochgefahren wurde.
- Den Zope-Server konfiguriere ich so, dass er nicht mehr die lokale Datenbank benutzt, sondern über das Netzwerk die Datenbank des ZEO-Servers anspricht.
- Dazu bearbeite ich die Datei "etc zopeconf".
- In der Sektion "zodb" tausche ich die Konfiguration für FileStorage gegen die Konfiguration für einen ZEO-Client aus.
- Nun starte ich den Zope-Server wieder.
- Wenn ich jetzt auf die Anwendung zugreife hat sich aus Benutzersicht nichts geändert.
- Allerdings werden im Hintergrund jetzt sämtliche Daten vom ZEO-Server geladen und beim Speichern an ihn weitergeleitet.
- Um den ersten Server zu entlasten, richte ich jetzt einen neuen Zope-Server ein. Dazu verwende ich das Skript "makezopeinstance".
- Das Skript fragt mich nach dem Pfad für den neuen Zope-Server, sowie nach einem Benutzernamen und Administratorpasswort.
- Die installierten Zusatzprodukte des ersten Zope-Servers kopiere ich aus dem "lib python"-Verzeichnis in das entsprechende Verzeichnis des neuen Zope-Servers.
- Zusätzlich kopiere ich die Konfiguration der Zusatzprodukte aus "etc package-includes" um die Adressverwaltung auch auf dem neuen Zope-Server zu aktivieren.
- Zuletzt bearbeite ich die Datei "etc zopeconf". Ich setze den Servernamen auf "server2" und konfiguriere die ZEO-Anbindung. Die ZEO-Konfiguration geschieht genau wie beim ersten Zope-Server.
- Der zweite Zope-Server ist jetzt einsatzbereit. Beim ersten Start eines Zope-Servers werden die installierten Produkte und Datenbanken initialisiert. Deshalb dauert der erste Start etwas länger als üblich.
- Über den Servernamen "server2" greife ich auf den neuen Zope-Server zu.
- Im neuen Server ist das angelegte Adressbuch mit allen eingetragenen Adressen verfügbar und reagiert ohne Unterschiede zum alten Server.
- Die Benutzer unserer Anwendung können beliebig einen der beiden Server verwenden, da die Daten vom ZEO-Server zentral gespeichert und an alle Zope-Server verteilt werden.
- Gebe ich eine Adresse auf "server2" ein, ... ist diese Adresse auf "server1" sofort verfügbar.
- Wir haben in unserem ersten Trick gesehen, wie mit Hilfe von ZEO ein einzelner ausgelasteter Server in kurzer Zeit in einen Cluster mit mehreren Servern verwandelt wird.
- Im nächsten Trick zeige ich, wie man einen Zope-Server mit einem Skript steuert, um Adressen aus einer externen Datenquelle zu importieren.
- Nächsten Montag zeige ich, wie man einen Zope-Server mit einem Skript steuert, um Adressen aus einer externen Datenquelle zu importieren.
Tippablauf- Fensterwechsel
- bin/zopectl stop
- ~/Development/Zope-3.2/bin/mkzeoinstance /home/ctheune/zope/d12-zeo
- mv var/Data.fs ../d12-zeo/var
- cd ../d12-zeo
- bin/zeoctl
- start
- logtail
- 5 Sekunden warten
- cd ../d12/
- vim etc/zope.conf
- Sektion ZODB -> filestorage weg, zeoclient rein, 3 sekunden warten, exit
- bin/zopectl start
- Fensterwechsel
- Seite neu laden, 9 Sekunden warten
- Fensterwechsel
- ~/Development/Zope-3.2/bin/mkzopeinstance
- /home/ctheune/zope/d12-server2
- admin
- admin
- cd ../d12-server2/lib/python
- cp -a /home/ctheune/d12/lib/python/d12/ .
- 1 Sek warten
- cd ../../
- cd etc/package-includes
- cp /home/ctheune/d12/etc/package-includes/d12* .
- 1 Sek warten
- cd ../../
- vim etc/zope.conf
- Name server2,
- 1 Sek warten
- ZODB-> filestorage weg, clientstorage rein
- 2 Sek warten
- bin/zopectl fg
- warten bis server da
- fensterwechsel
- browser: server1 durch server2 ersetzen, 1 sek warten, enter
- 2 sekunden warten
- neue adresse langsam eingeben, 1 sekunde warten
- server 2 auf server 1 wechseln
|