本节书摘来华章计算机《深入理解Elasticsearch(原书第2版)》一书中的第1章 ,第1.2.2节,[美]拉斐尔·酷奇(Rafal Ku) 马雷克·罗戈任斯基(Marek Rogoziski)著 张世武 余洪淼 商旦 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.2.2 Elasticsearch架构背后的关键概念
Elasticsearch的架构遵循了一些设计理念。开发团队希望这个搜索引擎产品易于使用和扩展,这些特征在Elasticsearch的每个角落里都可以被看到。从架构的视角来看,有下面这些主要特征:
- 合理的默认配置,使得用户在简单安装以后能直接使用Elasticsearch而不需要任何额外的调优,这其中包括内置的发现(例如,字段类型检测)和自动配置功能。
- 默认的分布式工作模式。每个节点总是假定自己是某个集群的一部分或将是某个集群的一部分。
对等架构(P2P)可以避免单点故障。节点会自动连接到集群中的其他节点,进行相互的数据交换和监控操作。这其中就包括了索引分片的自动复制。 - 容易扩充新节点至集群,不论是从数据容量的角度还是数量的角度。
Elasticsearch没有对索引中的数据结构强加任何限制。这允许用户调整现有的数据模型。正如之前我们所描述的那样,Elasticsearch支持在一个索引中存在多种数据类型,允许用户调整业务模型,包括处理文档之间的关联(尽管这种功能非常有限)。 - 准实时(near real time searching)搜索和版本同步(versioning)。考虑到Elasticsearch的分布式特性,查询延迟和节点之间临时的数据不同步是难以避免的。Elasticsearch尝试减少这些问题,并且提供了额外的机制用于版本同步。