从此
文章
📄文章 #️⃣专题 🌐上网 📺 🛒 📱

Elasticsearch 7.0.0 - Elastic Stack核心 全文搜索引擎

🕗2019-04-12

Elastic Stack 7.0.0 发布了,Elasticsearch 作为 Elastic Stack 的核心,它是一个分布式、面向文档的 RESTful 风格搜索和数据分析引擎,它支持结构化和非结构化查询,并且不需要提前定义模式。Elasticsearch 可用作搜索引擎,通常用于 Web 级日志分析、实时应用监控和点击流分析。

此版本从超过 10 000 个 PR 中蜕变而来,带来了一些重大改变。

Kibana 7.0:全新的设计和导航,以及暗黑模式

开发团队将设计重点放在了内容上,所以 Elasticsearch 分析和搜索仪表板 Kibana 在新版本中变得更加轻量。最突出的变化是切换到了新的全局导航,它引入了一个固定头部来切换 Kibana 空间、显示卡片,以及启动用户操作,如更改密码或注销。

 

为实现这一目标并提高一致性,开发团队创建了 Elastic UI Framework,并且在过去的一年中,几乎将整个 Kibana 都切换到这个框架的组件上,同时对样式和样式表的应用方式进行了大幅简化。

做完这些之后,随之而来的是完成了对整个 Kibana 暗黑模式的支持,这是 Kibana 史上极大的一个功能要求。此外,一致性的提高和样式的简化,带来的另一个好处是 Kibana 仪表板现在具有响应式设计,这为显著提高移动设备可用性打下了基础。

Elasticsearch 集群协调新时代

作为 Elastic Stack 的核心,Elasticsearch 从一开始就致力于易扩展并适应灾难性故障。为了达到这些要求,开发团队做了许多努力,不仅使单个节点更具可扩展性和可靠性,还持续改进了集群协调层 Zen Discovery。在 7.0 版本中,这两个方面都有重大改进。

节点

Elasticsearch 中的各个节点在构建时考虑了弹性,如果向节点发送过多请求或请求过大,那么节点将 push back。这一点通过 Elasticsearch 中的断路器实现,它会判定节点无法处理给定的请求,并要求客户端重试。对于具有较小 JVM 堆大小的节点,随着用户转移到集群每租户(cluster-per-tenant)模型而不是大规模多租户集群,这些节点变得越来越普遍,节点的弹性显得更为重要。

在 7.0 中,引入了真正的内存断路器,它可以更精准地检测出无法处理的请求,并防止它们使单个节点不稳定。

Zen Discovery

Zen2 是 Elasticsearch 的全新集群协调层,它同时提高了可靠性、性能和用户体验,变得更快、更安全,并更易于使用

当前有一些著名的共识算法,比如 Paxos、Raft、Zab 与 Viewstamped Replication(VR),但是 Elasticsearch 集群要求更高的集群变化吞吐量,还要支持轻松伸缩集群,并且滚动升级策略要允许系统无缝升级,这些要求是前边提到的算法无法达到的。

为实现这一目标,开发团队首先关注于新设计的分布式一致性算法的理论正确性。此外 Zen2 还包括许多可以降低人为错误可能性的变化,并提供了从灾难性故障中恢复时更清晰的选择。

相关性和速度改进

相关性和速度是良好搜索体验的基石, Elasticsearch 7.0 引入了几个基本功能对此进行优化:

此外,Elasticsearch 7.0 中还引入了一个新的聚合来处理地理地图图块,允许用户在地图上放大和缩小,而不会改变结果数据的形状,实现更加平滑地缩放 Elastic Maps;使用纳秒精度存储时序数据的时间戳,允许具有高频数据采集需求的用户可以更加精确地存储和排序他们的数据。

详情查看发布公告: