Scale Out mit Hazelcast

Wie man mit Hazelcast horizontal skalierbare Applikationen bauen kann

Anforderung: Paralleles Crawling von Postings

In einem Kundenprojekt sollen alle Postings von diversen User-Accounts eines externen Dienstes gesammelt werden. Da der Dienst keine Möglichkeit anbietet, die Postings über eine API abzufragen, kam die Idee, die Postings direkt von der Webseite zu crawlen. Das Risiko der Fehleranfälligkeit bzgl. des Parsen einer Webseite wurde dabei bewusst in Kauf genommen.

Da es sich bei dem Dienst um eine React-Anwendung handelt, war dann auch klar, dass das statische Parsen der einzelnen Seiten nicht möglich ist. Es musste also jede zu crawlende Seite noch zusätzlich mit einem Tool geparst werden, um den JavaScript-Code zu interpretieren, aus dem der dynamische DOM-Baum mit den zu extrahierenden Inhalten erzeugt wurde. Danach konnte man auf die eigentlichen Inhalte per XPath zugreifen.