elasticsearch-03-简单理解elasticsearch中的概念,以及shard&replica的解释(代码片段)

FrankQ FrankQ     2022-12-03     493

关键词:

elasticsearch的核心概念与简单举例

1、Near Realtime(NRT):

近实时,两个意思,从写入数据到数据可以被搜索到有一个小延迟(大概1秒);基于es执行搜索和分析可以达到秒级;

2、Cluster:集群

包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是elasticsearch)来决定的,
对于中小型应用来说,刚开始一个集群就一个节点很正常;
比如,在上文
ElasticSearch-02-使用Docker在Mac系统上搭建两个节点的ElasticSearch集群
(并同时创建kibana,cerebro两个容器): https://blog.csdn.net/yangqian201175/article/details/99664126 
中在本机上通过Docker部署的便是一个拥有两个节点的集群,elasticsearch_cluster_product;

3、Node:节点

集群中的一个节点,节点也有一个名称(默认是随机分配的),
节点名称很重要(在执行运维管理操作的时候),
默认节点会去加入一个名称为“elasticsearch”的集群,
如果直接启动一堆节点,那么它们会自动组成一个elasticsearch集群,
一个节点的elasticsearch部署也可以称之为一个集群;
在上文02中部署后的两个节点命名如下图所示:

4、Document&field:文档

es中的最小数据单元,一个document可以是一条客户数据,一条商品分类数据,一条订单数据,通常用JSON数据结构表示,
每个index下的type中,都可以去存储多个document。一个document里面有多个field,每个field就是一个数据字段,
比如大家在工作中通过Kibana去查询某个服务的日志,那么诸多服务的日志通过换行截取,收集以后便是一份一份的文档,
而文档中所包含的服务名称,访问TxId,logDetails等信息便是其中的filed;
简单举例如下图所示:

5、Index:索引

包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称。
一个index包含很多document,一个index就代表了一类类似的或者相同的document。
还是按照大家熟悉的日志系统举例,我们的日志组成结构,
如果是业务服务,日志一般情况下会通过切面的形式进行统一处理,
或者在手机的时候进行统一处理成格式基本一致的日志入到ElasticSearch中,
那么我们不同的测试场景,业务服务,数据服务,不同的环境,便是不同的Index;
简单的举例如下图所示:

6、Type:类型

每个索引里都可以有一个或多个type,type是index中的一个逻辑数据分类,一个type下的document,
都有相同的field,比如博客系统,有一个索引,可以定义用户数据type,博客数据type,评论数据type(不再赘述)

7、shard

单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。
有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。

8、replica

任何一个服务器随时可能故障或宕机,此时shard可能就会丢失,因此可以为每个shard创建多个replica副本。
replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。
primary shard(建立索引时一次设置,不能修改,默认5个),
replica shard(随时修改数量,默认1个),
默认每个索引10个shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。


如上图所示,其实每个shard都是一个lucene index,在读取,搜索的时候replica可以起到分摊的作用从而提高性能;

类比理解

ES数据库
Index
Type
Document
field

elasticsearchnest笔记

1.什么是ElasticSearch?ElasticSearchisapowerfulopensourcesearchandanalyticsenginethatmakesdataeasytoexplore. 可以简单理解成索引加检索的工具,当然它功能多于此。ElasticSearch分为服务端与客户端,服务端提供RESTAPI,客户端使用RESTAPI。 2.怎么... 查看详情

sqlstoreprocedureusadoparahacerunaconsultamásespecificaasololasofertasquehaydelaes(代码片段)

查看详情

基于opencv的几种立体匹配算法+elas

...CSDN代码资源:http://download.csdn.net/detail/chuhang_zhqr/97037630:ELAS这里要去 查看详情

资讯elas推出比特币企业套件signavera

...表时间:2021年9月9日信息来源:bitcoinassociation.netElas是一家基于区块链的软件工程公司,旨在解决现实世界中企业与政府所遇到的商业问题。Elas今天宣布发布Signavera——一个综合行生产力套件,它将为企业提供多... 查看详情

elasticsearch03_mapping字段映射常用类型数据迁移ik分词器自定义分词器(代码片段)

...pping字段映射概述①.映射(Mapping)相当于数据表的表结构。ElasticSearch中的映 查看详情

elasticsearch03_mapping字段映射常用类型数据迁移ik分词器自定义分词器(代码片段)

...①.Mapping字段映射①.映射(Mapping)相当于数据表的表结构。ElasticSearch中的映射(Mapping)用来定义一个文档,可以定义所包含的字段以及字段的类型、分词器及属性等等。②.映射可以分为动态映射和静态映射1.动态映射(dyn 查看详情

联邦学习简单理解

目录联邦学习简单理解一、“联邦学习”是什么?有什么用?二、“联邦学习”是怎么实现 查看详情

siege报告学习

English理解Transaction处理事务总次数Availability成功率(Successfultransaction/[Successful+Failedtransaction])Elapsedtime处理完所有事务消耗的时间Datatransferred传输数据的大小Responsetime平均响应时间Transactionratetps每秒处理事务数(Transaction/Ela 查看详情

div简单布局理解

以下是div的理解  查看详情

com.lightbend.lagom.internal.scaladsl.registry.ScalaServiceRegistryClient [] - 未找到 serviceName=[elas

】com.lightbend.lagom.internal.scaladsl.registry.ScalaServiceRegistryClient[]-未找到serviceName=[elastic-search]【英文标题】:com.lightbend.lagom.internal.scaladsl.registry.ScalaServiceRegistryClient[]-serviceName=[elastic-search]w 查看详情

elasticsearch顶尖高手系列-快速入门篇

01.课程介绍02.用大白话告诉你什么是Elasticsearch03.Elasticsearch的功能、适用场景以及特点介绍04.手工画图剖析Elasticsearch核心概念:NRT、索引、分片、副本等05.在windows上安装和启动Elasticseach06.快速入门案例实战之电商网站商品管理... 查看详情

简单的 SQL 连接理解? [复制]

】简单的SQL连接理解?[复制]【英文标题】:SimpleSQLJoinUnderstanding?[duplicate]【发布时间】:2012-05-0204:04:32【问题描述】:可能重复:ExplicitvsimplicitSQLjoinsIsthereadifferenceusingjoinandselectfrommulti-tables?SQLJoins:FutureoftheSQLANSIStandard(wherevs 查看详情

谁能让我简单理解

】谁能让我简单理解【英文标题】:cananyonemakemeunderstandsimply【发布时间】:2020-08-2418:13:37【问题描述】:defsingle(request,slug):pro=products.objects.get(slug=slug)images=productImage.objects.filter(product=pro)template=\'products.html\'context=\ 查看详情

如何简单理解springaop和事务

用比喻的方法理解吧:   初学者的理解,仅仅为了个人好记    aop:由三部分组成:工具箱,工人,为工人分配工具    tx事务:由四部分组成:管理者,制度,工人,向工人通知管理制度&nb... 查看详情

快速理解简单的代码[关闭]

】快速理解简单的代码[关闭]【英文标题】:Understandingsimplecodeinswift[closed]【发布时间】:2018-03-0213:47:42【问题描述】:我找到了实现在应用商店(Appstorelinkfor"rate/reviewthisapp")上获得评分的链接的答案。答案是:letappID="YourAppIDonAppS... 查看详情

简单理解计算机通信

简单理解计算机通信 写在前面: 在计算机刚出现的时候,只能在本机进行一些运算处理,想将一台计算机中的数据转移到另一台计算机中,需要通过外部存储介质来传输,例如磁带、软盘。而网络技术的出现,使得计算机... 查看详情

androidspan的简单理解和说明

AndroidSpan1、AndroidSpan架构介绍2、Android中span总结 查看详情

1.依赖项属性简单理解

依赖项属性2018/1/314:01:16dependencyproperty的简单理解(略去大部头理解)依赖项属性属性的值不是简单的封装字段,而是根据其他的输入值来决定本属性的值。为什么要这样做?因为在WPF体系中,只有定义属性为依赖项属性,这个... 查看详情