Michael Schröpl: Skript-Resulate aus DB an anderen Server zur Verarbeitung geben?

Beitrag lesen

Hi Julian,

Auf einem Server läuft ein Skript mit Datenbank im Hintergrund.
Die Ergebnisse des Skriptes sollen sollen ebenso in einer anderen
Homepage auf einem anderen Server angezeigt werden (Einverständnis
ist natürlich da).

Was genau heißt "in einer anderen Homepage angezeigt"?
Du scheinst mehr als nur einen Link zu meinen.

Willst Du erreichen, daß der angezeigte URL auf der "anderen Homepage"
verbleibt, aber effektiv der "Server" angesprochen wird?
Dazu würde es ausreichen, den URL zu übersetzen (Apache: mod_rewrite
oder Ähnliches); die Daten mußt Du nicht unbedingt transportieren.

Für diese Aufgabenstellung wäre die Lösung meiner Wahl Apache-mod_proxy

  • ich würde den fremden Server in meinen URL-Raum einblenden.

Es ist aber auch ineffektiv die Daten zweimal zu speichern

Nicht unbedingt - darauf basiert ganz allgemein das Prinzip eines Caches.

(und zu verwalten!).

Das natürlich schon. Aber ein Original und ein Spiegel inklusive automati-
siertem Abgleich, das erhöht den eigentlichen Verwaltungsaufwand kaum.

Die Daten ändern sich etwa wöchentlich.

Wie sicher bist Du Dir dieser Aussage?
Sie macht die Idee, direkt nach jeder Aktualisierung ein Duplikat auf den
anderen Server zu übertragen, attraktiver; für eine solche Überlegung müßte
ich aber auch die Zahl der Abfragen in etwa wissen (siehe unten).

Cronjobs stehen auf keinem der beiden Server zu Verfügung.

Auch nichts Vergleichbares? (Was sind denn _das_ für Server?)

Aber wenn schon Daten transportieren, dann tut es auch ein success event
nach der wöchentlichen Aktualisierung. (Irgendwer wird da ja wohl einen
Prozeß anstoßen.)

Eine Idee war, daß man ein Skript schreibt, daß nur die Daten zurückgibt,
dieses vom externen Server aufruft und ausliest und mit split usw. in
die einzelnen Werte teilt.

Hm - das ist nun etwas Anderes als das, was Du ursprünglich haben wolltest.
Anfangs wolltest Du nur die Ergebnisse des fremden Skriptes anzeigen - das
ist einfach. Jetzt dagegen willst Du sie mit einem Programm weiterverarbei-
ten - das schließt eine Reihe angedachter Möglichkeiten aus.

So ganz sauber ist aber ja nicht,

Siehe Cheatahs Kommentar.
Du hast natürlich einen zusätzlichen single point of failure im System
mit drin, den Du bei wöchentlicher vollständiger Übertragung der Datenbank
vermeiden würdest - die Ein-Server-Lösung ist wahrscheinlich stabiler.

und bei vielen Zugriffen wohl auch nicht so sinnvoll.

Der Knackpunkt ist dabei m. E. nicht die absolute Anzahl der Zugriffe,
sondern eher die relative Menge der abgefragten Daten gegenüber dem
Gesamtvolumen der Datenbank:
a) Wenn die Abfragen relativ oft relativ wenige Daten absaugen, dann
   ist die einmalige Übertragung des gesamten Datenbestandes auf den
   Verarbeitungsserver (Cache-Modell) sinnvoll;
b) werden jedoch aus einem riesigen Datenbestand nur kleine Teile aus-
   geliefert, dann ist der dynamische Kommunikationsaufbau wahrscheinlich
   effizienter.
Je mehr Du auf hochaktuelle Inhalte angewiesen bist, desto zwingender
dürfte der Ansatz b) werden.

Hat jemand eine Idee wie man sowas elegant löst?

Es wäre sinnvoll, noch ein paar Details nachzuliefern - beispielsweise
eben Angaben über die relativen Datenvolumina.

Viele Grüße
      Michael