ElasticSearch系列——Lucene和ElasticSearch介绍及其核心概念



ElasticSearch系列——主目录


1、Lucene和ElasticSearch


  • Lucene:功能强大到令人头大,非常复杂,学习成本高。API复杂,实现简单的功能需要写大量的java代码,甚至需要深入理解其原理
  • ElasticSearch:基于Lucene开发,隐藏其复杂性,从而提供简单易用的Restful API接口(还有其他的语言,如c++、python等)。开箱即用,完全开源

2、ElasticSearch的核心概念


  • Near Realtime(NRT):近实时。意思就是“快”。两层含义:从写入到被检索大概只需要 1 秒;基于es执行检索与分析可以达到秒级,甚至是毫秒
  • Cluster :集群。包含多个节点,集群名称默认是“elasticsearch”
  • Node :节点。集群中的一个节点,节点的名称默认随机分配,默认节点回去加入一个名称为“elasticSearch”的集群
  • Document :文档。最小的数据单元,一个document可以是一条客户数据,一条订单数据。通常是json数据表示。一个document里面有多个field,每个field就是一个数据字段
{
"product_id":"1",
"product_name":"王老吉",
"product_desc":"好喝不上火",
"category":"2",
"category":"饮料"
}
  • Index :索引。包含一堆有相似结构的文档数据,如一个商品索引,一个订单索引,一个index包含很多document,一个index就代表了一类类似的或者相同的document。
  • type:类型。每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,都有相同的field

与MySQL数据类比
Document ---------- 行
Type ----------------- 表
Index ---------------- 数据库

  • shard:【primary shard 简称shard 。建立索引时一次设置,不能修改,默认5个】单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储
  • replica:【replica shard 简称 replica 。 随时可以修改,默认1个】replica可以在shard故障时提供备用服务,保证数据不丢失

默认每个索引10个shard,因为有5个primary shard,1个primary shard有1个默认的replica shard,即有5个replica shard 。最小的高可用配置,是2台服务器

在这里插入图片描述


增加理解:
(1)index包含多个shard
(2)每个shard都是一个最小工作单元,承载部分数据,每个shard都是一个lucene实例,完整的建立索引和处理请求的能力
(3)增减节点时,shard会自动在nodes中负载均衡
(4)primary shard和replica shard,每个document肯定只存在于某一个primary shard以及其对应的replica shard中,不可能存在于多个primary shard
(5)replica shard是primary shard的副本,负责容错,以及承担读请求负载
(6)primary shard的数量在创建索引的时候就固定了,replica shard的数量可以随时修改
(7)primary shard的默认数量是5,replica默认是1(1个primary shard 配 1个replica),默认有10个shard,5个primary shard,5个replica shard
(8)primary shard不能和自己的replica shard放在同一个节点上(否则节点宕机,primary shard和replica副本都丢失,起不到容错的作用),但是可以和其他primary shard的replica shard放在同一个节点上


图解单node环境下创建index是什么样子的?

(1)单node环境下,创建一个index,有3个primary shard,3个replica shard

PUT /test_index
{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1
   }
}

(2)集群status是yellow
在这里插入图片描述
(3)这个时候,只会将3个primary shard分配到仅有的一个node上去,另外3个replica shard是无法分配的
(4)集群可以正常工作,但是一旦出现节点宕机,数据全部丢失,而且集群不可用,无法承接任何请求

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值