云原生应用中的 Elasticsearch
Elasticsearch 是一种分布式搜索和分析系统,可跨不同类型的数据实现复杂的搜索功能。 它是开源内容,非常受欢迎。 请思考下列公司如何将 Elasticsearch 集成到其应用程序中:
Elasticsearch 是在 Apache Lucene 全文搜索引擎的基础上构建的。 Lucene 提供高性能的文档索引和查询。 它使用倒排索引方案来索引数据 - 不是将页面映射到关键字,而是将关键字映射到页面,就像书籍末尾的术语表一样。 Lucene 拥有强大的查询语法功能,可通过以下方法查询数据:
- 字词(完整单词)
- 前缀(“以...开头”的词)
- 通配符(使用“*”或“?”筛选器)
- 短语(文档中的一连串文本)
- 布尔值(构成查询的复杂搜索)
Lucene 提供低级别的搜索管道,Elasticsearch 则提供基于 Lucene 的服务器。 Elasticsearch 添加了更高级别的功能来简化 Lucene 的工作,包括用于访问 Lucene 索引和搜索功能的 RESTful API。 它还提供分布式基础结构,可实现大规模可伸缩性、容错性和高可用性。
对于具有复杂搜索要求的较大云原生应用程序,Elasticsearch 在 Azure 中作为托管服务提供。 Microsoft Azure 市场提供了预配置的模板,开发人员可使用它们在 Azure 上部署 Elasticsearch 群集。
在 Microsoft Azure 市场中,开发人员可使用构建用于在 Azure 上快速部署 Elasticsearch 群集的预配置模板。 使用 Azure 托管的产品/服务,可部署多达 50 个数据节点、20 个协调节点和 3 个专用主节点。
总结
本章详细介绍了云原生系统中的数据。 我们首先将整体式应用程序中的数据存储与云原生系统中数据存储模式进行了比较。 我们查看了云原生系统中实现的数据模式,包括跨服务查询、分布式事务,以及处理高容量系统的模式。 我们比较了 SQL 和 NoSQL 数据。 还查看了 Azure 中提供的数据存储选项,包括以 Microsoft 为中心的选项和开源选项。 最后,我们讨论了云原生应用程序中的缓存和 Elasticsearch。
参考
Why isn't RDBMS Partition Tolerant in CAP Theorem and why is it Available?(RDBMS 在 CAP 定理中为什么不容忍分区?它为什么可用?)
IBM 博客:All you really need to know about open source databases(关于开源数据库真正需要知道的所有内容)
Saga Patterns | How to implement business transactions using microservices(Saga 模式 | 如何使用微服务实现商业交易)
Getting Behind the 9-Ball: Cosmos DB Consistency Levels Explained(9 个球的背后:Cosmos DB 一致性级别说明)
SQL vs NoSQL vs NewSQL: The Full Comparison(SQL、NoSQL 与 NewSQL:完整比较)
DASH: Four Properties of Kubernetes-Native Databases(DASH:Kubernetes 原生数据库的四个属性)
Elasticsearch: The Definitive Guide(Elasticsearch:权威指南)
Introduction to Apache Lucene(Apache Lucene 简介)