Elasticsearch从浅入深(一):基本介绍

Elasticsearch从浅入深(一):基本介绍

基本介绍

Elasticsearch是一个基于Lucene构建的开源、分布式、RESTful的搜索引擎,
能够实现快速,近实时的搜索。
Elasticsearch不仅是一种全文索引技术,也是一种面向文档型的nosql数据库。

Elasticsearch的应用场景

ES的大部分场景是:
“一个常见的设置是使用其它数据库作为主要的数据存储,
例如mysql等数据库,然后再使用 Elasticsearch 做数据检索”。

基本名词介绍

一:Near Realtime (NRT)
Elasticsearch是一个近乎实时的搜索平台。这意味着从索引文档到可以搜索的时间只有轻微的延迟(通常是1秒)。

二:Cluster
集群,是多个节点(服务器)的集合。每一个集群都有属于自己的名字,要确保不要出现相同的集群名字。

三:Document
文档,是可以被索引的基本信息单元。文档是用JSON来表示的。

四:Index
索引,具有某种相似特征的文档的集合。也就是有多个文档的意思。
例如,你可以有一个顾客信息索引,产品信息索引,订单信息索引。
索引都有一个名称,而且必须是小写的。
索引可以用于对它包含的多个文档进行索引,搜索,更新等操作。

五:Shar & Replicas
分片 和 副本

  • 分片:
    一个索引可能存储了大量的数据,这些数据可以超过了单个节点的硬件限制。
    例如,一个包含了10亿条文档占用了1TB的磁盘空间,那么它就不适合在单个节点上了。
    所以,为了解决这个问题,ES就提供了可以把索引分为多个片(分片)的功能。
    在创建索引的时候,我们就可以定义所需要的分片数量。每个分片就是一个功能完全独立的索引,可以驻留在集群中的任何节点上。

  • 副本:
    在一个网络环境,很有可能出现故障,所以需要有一个容灾机制。
    ES就提供了将一个或者多个索引分片复制到其他的节点的功能。
    (而且复制之后是放在另外的节点的,并不是自身的节点,也保证了shard的高可用)

    这种复制后的索引或者索引分片,我们称之为副本

    在默认情况下,ES的每个索引都分配了5个主分片和一个副本。(这里的副本是针对索引而言。也就是复制了一个完整的索引。)

    举例,例如一个ES集群有两个节点,而且每个索引分配5个主分片和一个副本,那么就是每个索引有10个分片(包括主分片和副分片,因为副分片也是复制主分片的)如下图显示
    在这里插入图片描述

看了上图我们可以发现,每个分片的主和副分片都是在不同节点的。这样才能保证高可用。

注意:我们可以为每个索引定义分片和副本的数量。
创建索引后,可以随时动态地更改副本的数量,但不能更改分片的数量。

总结:就是一个索引可以分成多个分片。分片也可以被复制。

扩展问题

1)主分片和副本分片有什么区别?
主分片与副本都能处理查询请求,
它们的唯一区别在于只有主分片才能处理索引请求。
同时用户也可在任何时候添加或删除副本。
额外的副本能给带来更大的容量, 更高的呑吐能力及更强的故障恢复能力。

2)为什么要主分片和副分片在不同的节点上?
一是为了更好的均衡负载,不同节点上二是节点发生故障时,
主分片和副本分片一起故障,没法保证高可用性。
所以 Elasticsearch 集群最好要有 2 个节点或以上。

3)分片的大小是多少?
分片的大小没有固定的限制,
但是通常情况下很多场景限制在 50GB 的分片大小以内。
一般都是几G到几十G,尽量避免使用非常大的分片。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值