Freigeben über


Elasticsearch in einer cloudnativen App

Tipp

Diese Inhalte sind ein Auszug aus dem E-Book „Architecting Cloud Native .NET Applications for Azure“, verfügbar in der .NET-Dokumentation oder als kostenlos herunterladbare PDF-Datei, die offline gelesen werden kann.

Miniaturansicht des E-Books „Architecting Cloud Native .NET Applications for Azure“.

Elasticsearch ist ein verteiltes Such- und Analysesystem, das komplexe Suchfunktionen über verschiedene Arten von Daten hinweg ermöglicht. Es ist Open Source und weit verbreitet. Beachten Sie, wie die folgenden Unternehmen Elasticsearch in ihre Anwendung integrieren:

  • Wikipedia für die Volltextsuche und die inkrementelle Suche (Suche während der Eingabe).
  • GitHub, um über 8 Millionen Coderepositorys zu indizieren und verfügbar zu machen.
  • Docker, um die Containerbibliothek erkennbar zu gestalten.

Elasticsearch basiert auf der Apache Lucene-Volltextsuchmaschine. Lucene bietet leistungsstarke Dokumentindizierung und -abfrage. Es indiziert Daten mit einem umgekehrten Indizierungsschema – anstatt Seiten den Stichwörtern zuzuordnen, ordnet es Stichwörter den Seiten zu, wie ein Glossar am Ende eines Buchs. Lucene verfügt über eine leistungsstarke Abfragesyntax und kann Daten anhand der folgenden Kriterien abfragen:

  • Begriff (ein vollständiges Wort)
  • Präfix (Wortanfang)
  • Platzhalter (mithilfe der Filter „*“ oder „?“)
  • Ausdruck (eine Textsequenz in einem Dokument)
  • Boolescher Wert (komplexe Suchvorgänge, die Abfragen kombinieren)

Während Lucene die Suche auf niedriger Ebene ermöglicht, stellt Elasticsearch den Server bereit, der auf Lucene aufsetzt. Elasticsearch fügt Funktionen auf höherer Ebene hinzu, um die Arbeit mit Lucene zu vereinfachen, einschließlich einer RESTful-API für den Zugriff auf die Indizierungs- und Suchfunktionen von Lucene. Es bietet auch eine verteilte Infrastruktur, die massive Skalierbarkeit, Fehlertoleranz und Hochverfügbarkeit ermöglicht.

Für größere cloudnative Anwendungen mit komplexen Suchanforderungen ist Elasticsearch als verwalteter Dienst in Azure verfügbar. Der Microsoft Azure Marketplace bietet vorkonfigurierte Vorlagen, die Entwickler für die Bereitstellung eines Elasticsearch-Clusters auf Azure verwenden können.

Über den Microsoft Azure Marketplace können Entwickler vorkonfigurierte Vorlagen verwenden, die für die schnelle Bereitstellung eines Elasticsearch-Clusters auf Azure erstellt wurden. Bei Verwendung des von Azure verwalteten Angebots können Sie bis zu 50 Datenknoten, 20 Koordinationsknoten und drei dedizierte Masterknoten bereitstellen.

Zusammenfassung

In diesem Kapitel wurde ein detaillierter Blick auf Daten in cloudnativen Systemen geworfen. Wir haben zunächst die Datenspeicherung in monolithischen Anwendungen mit den Datenspeichermustern in cloudnativen Systemen verglichen. Wir haben Datenmuster betrachtet, die in cloudnativen Systemen implementiert sind, darunter dienstübergreifende Abfragen, verteilte Transaktionen und Muster für den Umgang mit Systemen mit hohem Datenvolumen. Wir haben SQL- mit NoSQL-Daten verglichen. Wir haben uns die in Azure verfügbaren Datenspeicheroptionen angesehen, die sowohl Microsoft-zentrierte als auch Open-Source-Optionen umfassen. Schließlich haben wir über Zwischenspeicherung und Elasticsearch in einer cloudnativen Anwendung gesprochen.

Referenzen