Elasticsearch in een cloudeigen app
Tip
Deze inhoud is een fragment uit het eBook, Cloud Native .NET Applications for Azure ontwerpen, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.
Elasticsearch is een gedistribueerd zoek- en analysesysteem dat complexe zoekmogelijkheden mogelijk maakt voor verschillende typen gegevens. Het is open source en populair. Overweeg hoe de volgende bedrijven Elasticsearch integreren in hun toepassing:
- Wikipedia voor zoeken in volledige tekst en incrementeel (zoeken terwijl u typt).
- GitHub om meer dan 8 miljoen codeopslagplaatsen te indexeren en beschikbaar te maken.
- Docker voor het detecteren van de containerbibliotheek.
Elasticsearch is gebouwd op basis van de apache Lucene-zoekmachine voor volledige tekst. Lucene biedt hoogwaardige documentindexering en query's. Hiermee worden gegevens geïndexeerd met een omgekeerd indexeringsschema. In plaats van pagina's toe te wijst op trefwoorden, worden trefwoorden toegewezen aan pagina's, net als een woordenlijst aan het einde van een boek. Lucene heeft krachtige mogelijkheden voor querysyntaxis en kan query's uitvoeren op gegevens door:
- Term (een volledig woord)
- Voorvoegsel (begint met woord)
- Jokerteken (met filters '*' of '?')
- Woordgroep (een reeks tekst in een document)
- Booleaanse waarde (complexe zoekopdrachten combineren query's)
Hoewel Lucene loodgieters op laag niveau biedt voor zoeken, biedt Elasticsearch de server die boven op Lucene staat. Elasticsearch voegt functionaliteit op een hoger niveau toe om het werken met Lucene te vereenvoudigen, waaronder een RESTful-API voor toegang tot de indexerings- en zoekfunctionaliteit van Lucene. Het biedt ook een gedistribueerde infrastructuur die geschikt is voor enorme schaalbaarheid, fouttolerantie en hoge beschikbaarheid.
Voor grotere cloudtoepassingen met complexe zoekvereisten is Elasticsearch beschikbaar als beheerde service in Azure. De vooraf geconfigureerde sjablonen van Microsoft Azure Marketplace die ontwikkelaars kunnen gebruiken voor het implementeren van een Elasticsearch-cluster in Azure.
Vanuit Microsoft Azure Marketplace kunnen ontwikkelaars vooraf geconfigureerde sjablonen gebruiken die zijn gebouwd om snel een Elasticsearch-cluster in Azure te implementeren. Met behulp van de door Azure beheerde aanbieding kunt u maximaal 50 gegevensknooppunten, 20 coördinerende knooppunten en drie toegewezen hoofdknooppunten implementeren.
Samenvatting
In dit hoofdstuk wordt een gedetailleerd overzicht gegeven van gegevens in cloudsystemen. We zijn begonnen met het contrasteren van gegevensopslag in monolithische toepassingen met gegevensopslagpatronen in cloudeigen systemen. We hebben gekeken naar gegevenspatronen die zijn geïmplementeerd in cloudeigen systemen, waaronder query's voor meerdere services, gedistribueerde transacties en patronen om te gaan met systemen met grote volumes. We hebben SQL gecontrast met NoSQL-gegevens. We hebben gekeken naar opties voor gegevensopslag die beschikbaar zijn in Azure, met zowel microsoft-gerichte als opensource-opties. Ten slotte hebben we het over caching en Elasticsearch in een cloudeigen toepassing besproken.
Verwijzingen
Waarom is RDBMS-partitietolerant niet in CAP-theorema en waarom is deze beschikbaar?
Alles wat u echt moet weten over opensource-databases (IBM-blog)
Saga Patterns | Zakelijke transacties implementeren met behulp van microservices
Op RDBMS-, NoSQL- en NewSQL-databases. Interview met John Ryan
DASH: Vier eigenschappen van Kubernetes-systeemeigen databases