Elasticsearch基本概念

集群

集群是一个或多个节点的集合。他们一起保存你的数据,在所有节点间提供联合索引和搜索功能。一个集群由一个特定的名称表示,默认为“elasticsearch”。这个名字是很重要的,因为一个节点只能根据这个名字,加入一个集群。在实际应用中,建议 显式设置集群名称,但是在测试或开发时,用默认名称就可以了。

注意,一个集群只有一个节点是允许的,而且可以完美运行。此外,你可以有很多具有不同名字的独立的集群。

节点

一个节点是一个单独的服务器,它作为你集群的一部分,存储你的数据,参与集群的索引和搜索功能。和集群一样,节点也是由一个名字表示,默认在启动时随机分配一个名字。如果你不喜欢默认的名字,你可以定义任何你想要的名字。这个名字对于管理来说是比较重要的,它定义了你网络中的服务器,对应Elasticsearch集群中的哪个节点。

一个节点,通过配置集群名字,加入一个特定的集群。默认,每个节点被设置加入一个名字为“elasticsearch”的集群。它意味着,如果你在网络中启动很多个节点(假设他们可以互相通信),他们会自动加入一个名为“elasticsearch”的集群。

在一个集群中,你可以加入任意数量的节点。此外,如果在你的网络中,没有运行的elasticsearch节点,启动一个几点,会默认构成一个新的名为“elasticsearch”单节点集群。

索引

在一个索引中,你可以定义一种或多种类型。类型是你索引的一种逻辑分类,他的语义完全由你决定。通常,类型是对拥有相同字段的文档的定义。例如,假设你运行了一个博客平台,在一个索引中存储了你所有的数据。在这个索引中,你可能为用户数据定义了一种类型,为博客定义了另外一种类型,甚至对评论定义了另外一种类型。

文档

文档是可以存入索引的信息的基本单位。例如,你可以拥有一个关于特定用户的文档,关于特定产品的文档,甚至一个关于订单的文档。这个文档用JSON表示。

在一个索引/类型中,你可以存储任意多的文档。注意尽管一个文档物理存在于一个索引中,它实际必须指定这个索引中的一种类型。

分片&副本

一个索引可能存储超过一个节点硬件限制的数据。例如,一个拥有10亿文档、占用1TB磁盘空间的索引,可能不适合在一个节点的磁盘上面,或者对于一个单节点的搜索请求速度太慢。

为了解决这个问题,Elasticsearch提供了将你的索引分成称作分片的多个块。当你创建一个索引,你可以简单的定义你想要的分片数量。每一个分片自身就是一个全功能和独立的“索引”,可以托管在集群中的任何节点上。

分片有以下两个重要的原因:

--它允许你水平调整容量

--它允许你在分片上分发和并行操作(可能在多个节点上),因此提高了性能/吞吐量

一个分片如何分布、它的文档如何聚合回搜索请求完全由Elasticsearch管理,对用户来说是透明的。

在一个网络或云环境中,不论什么原因一个分片或节点离线或消失时,有一个故障转移机制是很有用且被强烈推荐的。为此,Elasticsearch允许你复制一个或多个索引分片到备用分片,简称副本。

复制有以下两个重要的原因:

--它提供了分片/节点失败时的高可用。为此,要注意一个备用分片永远不能与主分片分配到同一个节点上。

--它允许你拓展你的搜索容量/吞吐量,因此搜索可以再所有副本中并行执行。

总而言之,每个索引可以分成多个分片。一个索引当然也可以被复制0到多份。一旦复制了,每个索引会有主分片(原始分片)和副本分片(主分片的复制)。分片的副本的数量可以在索引创建时定义。索引简历后,你可以在任何时候动态的改变副本数量,但你不能改变分片数量。

默认,Elasticsearch中的每个索引被分配5个分片和1个副本,它意味着如果你集群中至少有两个节点,你的每个索引会有10个分片:5个主分片和另外5个副本分片(1个完整的副本)。





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值