Wann ein geteilter Proxy-Cache einem Crawler hilft
Prüfen Sie wiederkehrende Ressourcen, Aktualität und tatsächliche Crawler-Abrufe, bevor Sie von einem geteilten Forward-Proxy-Cache höheren Durchsatz erwarten.
Angenommen, mehrere browserbasierte Worker öffnen verschiedene Seiten derselben Website. Diese Seiten verweisen auf dasselbe Stylesheet, Logo und Skriptpaket. Ein geteilter Forward-Cache kann den ersten Abruf für spätere Worker nutzbar machen, wenn die Antworten wiederverwendbar sind.
Ändern Sie nun die Arbeitslast: Jeder Worker lädt nur ein HTML-Dokument und ruft die verlinkten Ressourcen nie ab. Das gemeinsame Stylesheet steht weiterhin im Markup, aber kein Worker fragt es an. Es trägt nichts zur Cache-Trefferquote des Proxys bei.
Beginnen Sie mit den Anfragen, die Ihr Crawler tatsächlich stellt
Ein Browser, der eine Seite rendert, und ein HTTP-Client, der deren Quelle abruft, erzeugen unterschiedliche Anfragemengen. Prüfen Sie diese Mengen, bevor Sie ein Cache-Design wählen.
| Arbeitslast | Potenzial für gemeinsame Wiederverwendung |
|---|---|
| Worker rufen wiederholt dieselben öffentlichen Assets ab | Nützlich, wenn Aktualitäts- und Cache-Key-Regeln es zulassen |
| Jede Anfrage hat eine eindeutige URL oder Antwortvariante | Wenig Überschneidung zur Wiederverwendung |
| Eine Antwort muss vor der Wiederverwendung revalidiert werden | Kann Antwortbytes sparen, erfordert aber weiterhin einen Upstream-Roundtrip |
| Worker bedienen Anfragen bereits aus ihrem lokalen Cache | Diese Anfragen erreichen den geteilten Proxy möglicherweise nie |
URL-Gleichheit allein genügt nicht. Die Aktualitätsrichtlinie der Antwort und die von Vary benannten Felder können Repräsentationen unterscheiden. Private, nicht speicherbare oder authentifizierte Inhalte benötigen die geltenden Regeln für geteilte Caches; sie dürfen nicht in ein einziges öffentliches Ergebnis gezwungen werden, nur um die Trefferzahl zu erhöhen.
Bei gewöhnlichem HTTPS-CONNECT-Verkehr führt der Forward-Proxy einen verschlüsselten Tunnel und enthält darin keine HTTP-Objekte zum Zwischenspeichern. Ein Deployment mit TLS-Inspektion hat ein anderes Vertrauens- und Verarbeitungsverhalten. Beziehen Sie den tatsächlichen Modus ein, wenn Sie beurteilen, ob Objekt-Caching verfügbar ist.
Ein Cache-Treffer kann einen Upstream-Abruf vermeiden, während ein Fehltreffer die Arbeit des Intermediärs weiterhin kostet. Vergleichen Sie abgeschlossene nutzbare Bytes, Upstream-Verkehr und Latenz für die vorgesehene Arbeitslast. Die Thread-Anzahl beschreibt Nebenläufigkeit; sie beschreibt nicht, wie viel wiederverwendbarer Inhalt diese Threads teilen.