-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hallo,
wir sollten uns in nächster Zeit mal etwas überlegen, wie wir eine skalierende Alternative zur bisherigen Netmon-API entwickeln:
Es ist ja bereits einmal vorgekommen, dass eine Tageszeitung Netmon (und damit die Api) in ihre Seite eingebaut hat und daraufhin unsere Serverlast ganz extrem in die Höhe schoss, weil plötzlich eine Seite, die ein x-Faches dessen, was wir an Besuchern haben, mit jedem Seitenaufruf direkt unseren bescheidenen Mysql-Server nutzt. Das skaliert sehr schlecht und sobald die API mal wieder von irgendwas großem eingebunden wird, haben wir wieder Probleme.
Da die Daten ohnehin nur alle 10 Minuten aktualisiert werden, könnte man, ohne dass es auch nur die geringste Einschränkung der Nutzbarkeit bedeutete, hierfür ein Caching einrichten, welches nur alle 10min die Daten von unseren Servern abruft und auf einer Maschine zwischenspeichert, die in der Lage ist, größere Lasten zu handeln - das könnte wiederum was allgemeines, zentrales (irgendein cloud-dienst) oder eben ein php-Skript auf dem Server des einbindenden sein (würde ich insofern präferieren, da dass dann genau dem Lastprofil entspräche was tatsächlich auf die Daten zukäme).
Denkbar wäre folgendes Skript:
Das Skript legt beim Aufruf einen Snapshot der von der API gelieferten Daten an und speichert diese auf der Platte - zB als Textdatei - der einbindenden Seite. Beim nächsten Aufruf wird - sofern diese Datei nicht älter als 10 Minuten ist, nicht mehr auf unsere Api sondern eben auf diese Textdatei zugegriffen und die API-Daten daher, also nicht mehr von unserem Server bezogen. Sind mehr als 10 Minuten vergangen, werden die Daten von der API neu gezogen.
Was haltet ihr davon? Stellen wir sowas in PHP zur Verfügung?
Viele Grüße, Eike Baran