elasticsearch计算某一时间段内的文档数_开源搜索引擎排名第一,Elasticsearch是如何做到的?...

本文深入探讨了Elasticsearch的架构与原理,包括集群、节点、分片的概念,以及如何处理节点故障和数据安全性。文章介绍了Elasticsearch在日志实时分析、时序分析和搜索服务中的应用场景,并分享了腾讯在Elasticsearch服务中的可用性、性能和成本优化措施,如主节点健壮性、容灾方案和内存管理优化。
摘要由CSDN通过智能技术生成

一、引言

随着移动互联网、物联网、云计算等信息技术蓬勃发展,数据量呈爆炸式增长。如今我们可以轻易得从海量数据里找到想要的信息,离不开搜索引擎技术的帮助。

作为开源搜索引擎领域排名第一的 Elasticsearch,能够让我们无需深入了解背后复杂的信息检索原理,就可实现基本的全文检索功能,在数据量达到十亿,百亿规模仍然可以秒级返回检索结果。

对于系统容灾、数据安全性、可扩展性、可维护性等用户关注的实际问题,在Elasticsearch 上也能得到有效解决。

二、Elasticsearch 介绍

Elasticsearch(ES)是一个基于 Lucene 构建的开源分布式搜索分析引擎,可以近实时的索引、检索数据。具备高可靠、易使用、社区活跃等特点,在全文检索、日志分析、监控分析等场景具有广泛应用。

由于高可扩展性,集群可扩展至百节点规模,处理PB级数据。通过简单的 RESTful API 即可实现写入、查询、集群管理等操作。

除了检索,还提供丰富的统计分析功能。以及官方功能扩展包 XPack 满足其他需求,如数据加密、告警、机器学习等。

另外,可通过自定义插件,如 COS 备份、QQ 分词等满足特定功能需求。

1. Elasticsearch 架构与原理

3ded9b4ce977cae3af1f34a87ede475e.png

基本概念 :

  • Cluster「集群」:由部署在多个机器的ES节点组成,以处理较大数据集和实现高可用;
  • Node「节点」:机器上的ES进程,可配置不同类型的节点;
  • Master Node「主节点」:用于集群选主。由其中一个节点担任主节点,负责集群元数据管理,如索引创建,节点离开加入集群等;
  • Data Node「数据节点」:负责索引数据存储;
  • Index「索引」:索引数据的逻辑集合,可类比关系型数据的DataBase;
  • Shard「分片」:索引数据子集,通过将分片分配至集群不同节点,实现数据横向扩展。以解决单个节点CPU、内存、磁盘处理能力不足的情况;
  • Primary Shard「主分片」:数据分片采用主从模式,由分片接收索引操作;
  • Replica Shard「副本分片」:主分片的拷贝,以提高查询吞吐量和实现数据高可靠。主分片异常时,其中一个副本分片会自动提升为新的主分片。

为了便于大家理解ES里的数据模型,将它与关系型数据库 MySQL 做类比:

08fcef568ded5b8e33e1db7f7d869a45.png

从上面架构图可以看出,ES 架构非常简洁。内置自动发现实现 Zen discovery,当一个节点启动后,通过联系集群成员列表即可加入集群。

由其中一个节点担任主节点,用于集群元数据管理,维护分片在节点间的分配关系。当新节点加入集群后,Master 节点会自动迁移部分分片至新节点,均衡集群负载。

94ee3e77baf44b0db5e21429d82a07ad.png

分布式集群难免有节点故障。主节点会定期探测集群其他节点存活状态,当节点故障后,会将节点移出集群,并自动在其他节点上恢复故障节点上的分片。

主分片故障时会提升其中一个副本分片为主分片。其他节点也会探活主节点,当主节点故障后,会触发内置的类 Raft 协议选主,并通过设置最少候选主节点数,避免集群脑裂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值