Elasticsearch分片数量选择及如何保证数据一致性

ElasticSearch修改默认分片数量 PUT /_cluster/settings { "persistent": { "cluster": { "max_shards_per_node":10000 } } } es 默认分片数量是100 使用此方法修改成10000 Elasticsearch基于JAVA开发而来,Elasticsearch能够从传统的解决方案中脱颖而出,自然尤其深邃之处。本次的课程我们将不再满足于Elasticsearch的基础技术,而是全面且深入的进行探究。从Elasticsea.. 阅读详情

副本数量的选定原则

对于副本数,比较好确定,可以根据我们集群节点的多少与我们的存储空间决定,我们的集群服务器多,并且有足够大多存储空间,可以多设置副本数,一般是1-3个副本数,如果集群服务器相对较少并且存储空间没有那么宽松,则可以只设定一份副本以保证容灾(副本数可以动态调整)

举个栗子:

#在一个三节点组成的集群中 设置一个主分片数为5,副分片为0的索引
PUT /haizhi1
{
    "settings": {
        "index": {
            "number_of_shards": 5,
            "number_of_replicas": 0
        }
    }
}

副分片数量为0则意味着集群中的任何一台机器宕机,都会导致集群不可用,数据不完整。

副本数量是可以动态修改的

PUT /haizhi1/_settings
{
    "settings": {
        "index": {
            "number_of_replicas": 1
        }
    }
}

动态修改数据副本为1,可以容忍一台机器宕机,提高可用性

模块简介

Elasticsearch集群中保持数据一致性的过程中,涉及到内部之间的通讯,先简单介绍一下es中各模块的作用和功能

1)cluster

cluster模块是主节点执行集群管理和封装的实现,管理集群状态,维护集群层面的配置信息。

  • 管理集群状态,将新生成的集群状态发布到集群中所有的节点
  • 调用allocation模块执行分片分配,决策哪些分片应该分配到哪个节点
  • 在集群各节点中直接迁移分片,保持数据平衡

2)allocation

封装了分片分配相关的功能和策略,包括主分片的分配和副分片的分配,本模块由主节点调用。创建新索引、集群完全重启都需要分片分配的过程

3)discovery

发现模块负责发现集群中的节点,以及选举主节点,当节点加入或者退出集群是,主节点会采取像一个的行动(选主或者是集群拓扑)。

4)gateway

负责对收到 Master 广播下来的集群状态( cluster state )数据的持久化存储,并在集群完全重启时恢复它们 。

5)Indices

索引模块管理全局级的索引设置,不包括索引级的(索引设置分为全局级和每个索引级)。 它还封装了索引数据恢复功能 。 集群启动阶段需要的主分片恢复和副分片恢复就是在这个模块 实现的 。

6)HTTP

HTTP 模块允许通过 JSON over HTTP 的方式访 问 ES 的 API, HTTP 模块本质上是完全异步的,这意味着没有阻塞线程等待响应 。

7)Transport

传输模块用于集群内节点之间的内部通信 。 从一个节点到另 -个节点的每个请求都使用传输模块。 如同 HTTP 模块 ,传输模块本质上也是完全异步的。传输模块使用 TCP 通信,每个节点都与其他节点维持若干 TCP 长连接。内 部节点间的所有通信都是本模块承载的。

8)Engine

Engine 模块封装了对 Lucene 的操作及 translog 的调用,它是对一个分片读写操作的最终提供者 。

写操作如何保证数据的一致性

算法概念

ES的数据副本模型基于主从模式,是基于微软的PacificA算法实现,PecificA的算法特点如下:

  • Replica Group: 一个互为副本的的数据集合称为副本组,该副本组中只有一个副本是主数据(Primary),

    其他的都为从数据(Secondary),在ES则是我们对应的主分片和副分片。

  • Configuration: 配置信息中描述了一个副本组中的副本信息(谁是主数据,谁是从数据,分别位于哪个节点)

  • Configuration Version:配置信息的版本号,每次发生变更时递增

  • Serial Number:代表每个写操作的数据,每次写操作是会将该值递增,简称SN。每个主副本维护自己的递增SN

  • Prepared List:写操作的准备序列。存储来自外部的请求列表,将请求按照SN进行从小到大排序

  • Committed List:写操作的顺序提交

新建、索引和删除请求都是写操作,写操作必须先在主分片执行成功后,才能复制到相应的副本组中的其他副分分片

[外链图片转存失败(img-7e7Iqlmw-1567323878796)(/Users/haizhi/Library/Application Support/typora-user-images/image-20190707100909138.png)]

1)写请求进入到协调节点,协调节点通过ID进行转发

2)写操作进入主副本节点(Primary),主副本节点为该操作分配SN,使用该SN构建写操作请求数据结构(UpdateRequest),然后将该UpdateRequest写入自己的prepare list。

3)一旦主副本节点收到所有从副本节点收到所有的从副本节点的相应,确定该数据已经被正确写入所有的从副本节点,此时认为可以提交了,将此UpdateRequest放入committed list,

4)主副本回复客户端更新成功。此时,主副本节点向从副本节点发送一个commit通知,告诉所有的副本节点自己的 committed point位置,从副本节点收到通知后根据指示移动到 committed point相同的位置

写一致性默认的策略是qourum,即多数的分片(其中分片副本可以是主分片或副分片)在写入操作的时候处于可用状态

quorum=int( (primary + number_of_replicas) / 2 ) + 1

也可以通过wait_for_active_shards参数来指定必须多少个shard响应写请求才算成功

#设置等待写入结果
PUT /haizhi1/type1/4?wait_for_active_shards=5
{
  "key1":"value12"
}
协调节点的作用和流程

协调节点在整个流程中,负责参数检验,创建索引和转发请求到主分片节点、等待响应并回复客户端

参数检验
参数检查
index不可为空
type不可为空
source不可为空
contentType不可为空
opType当前操作类型如果是创建索引,则校验VersionType必须为internal,且Version不可为MATCH_DELETED
resolvedVersion校验解析的Version是否合法
versionType不可为FORCE类型,此类型已废弃
id非空是,长度不可大于512,以及为空时,则需要对versionType和resolvedVersion的检查
  • 任何一项检查未通过,都会拒绝请求
自动创建索引

如果配置为允许自动创建索引(默认允许),则计算请求中涉及的索引,可能有多个,其中有哪些索引是不存在的,则需要进行创建,如果部分索引创建失败,则实际的请求被标记为失败,其他索引正常执行写流程

创建索引的请求会被转发到Master节点,待收到全部创建请求的结果(无论是成功还是失败),都会进行到处理下一个流程

对请求的预先处理

对请求的预先处理不同于对数据的预处理,只是检查参数,自动生成ID,处理routing

检查集群状态

价差当前集群中是否存在主节点,如果不存在,会阻塞等待主节点的选举直到超时

内容路由,构建基于shard的请求

将用户的bulkRequest重新组织为基于shard的请求列表。

栗子:如果用户请求有10个写操作,会将这10个写操作按照路由算法确定分片是否是同一个,批量操作。

路由算法 : shard_num = hash(_routing) % num_primary_shards

默认情况下 _routing是指文档的ID

ES使用随机id和hash算法来确保文档均匀分布给分片,当使用自定义id或者routing是,id或routing值不够随机,造成数据倾斜,部分分片过大。可以使用index.routing_partition_size配置来减少倾斜的风险,routing_partition_size越大,则数据分布的越均匀。

shard_num = (hash(_routing) + hash(_id) % routing_partition_size) % num_primary_shards

也就是说,一routing 字段用于计算索引中的一组分片,然后使用一id 来选择该组内的分片。 index.routing_partition_size 取值应具有大于等于 1 且小于 index.number_of_ shards 的值。

转发请求并等待响应

根据集群状态中的内容路由表确定主分片所在的节点,转发请求并等待响应

PUT /haizhi1
{
    "settings": {
        "index": {
            "number_of_shards": 5,
            "routing_partition_size":0, #可以再创建索引的时候指定routing_partition_size
            "number_of_replicas": 1
        }
    }
}

主分片节点作用和流程

主分片所在的节点负责在本地写主分片,写成功后(Prepared List),转发写副本请求,等待响应,回复协调节点

检查请求

收到协调节点发来的请求,需要检测要写的是否是朱分片,索引是否处于关闭状态

是否延迟执行

判断是否需要延迟执行,如果需要延迟则放入队列,否则继续往下执行

判断主分片是否发生迁移

如果发生迁移,则转发请求到迁移的节点

检测写一致性

在写操作开始前。检测本次写操作涉及的shard活跃数量是否足够,不足则不执行写入,默认为1,只要主分片可用就执行写入

写Lucene和事物日志

遍历请求,处理动态更新字段映射,然后逐条对doc索引。

索引的过程是先写Lucene,后写translog。

处理副本信息

主分片操作成功后则将请求转发到副分片上

索引恢复流程

索引恢复是ES数据恢复过程,待恢复的数据是客户端写入成功,但未执行刷盘(flush)的Lucene分段。副分片同步主分片数据

根据分片的性质,索引恢复过程可以分为朱分片恢复流程和副分片恢复流程

  • 主分片从translog中自我恢复,尚未执行flush到磁盘lucene分段的数据可以从translog中重建
  • 副分片需要从主分片中拉取Lucene分段和translog进行恢复。

索引恢复的触发条件包括从快照备份恢复,节点加入和离开,索引的_open操作

阶段简介
INIT恢复尚未启动
INDEX恢复Lucene文件,以及在节点间复制索引数据
VERIFY_INDEX验证索引
TRANSLOG启动engine,重放translog,建立Lucene索引
FINALIZE清理工作
DONE完毕

主分片和副分片恢复都会经历这些阶段 ,但有时候会跳过具体执行过程 ,只 是在流程上体 现出 经历了这个短暂阶段 。 例如, 副分片恢复时会跳过 TRANSLOG 重放过程: 主分片恢复过 程中 的卧IDEX 阶段不会在节点之 间 复制数据。

主分片恢复流程
INIT 阶段

一个分片的恢复是从启动开始,检验当前分片是否为主分片,分片状态等信息校验

INDEX阶段

从Lucene读取最后一次提交的分段信息,

VERIFY_INDEX阶段

验证Lucene中的index是否被损坏 是否检验本项检查取决于配置index.shard.check_on_startup,在分片数据过多的时候,分片检查会消耗更多的时间,影响启动速度

TRANSLOG阶段

根据Lucene最后一次提交的记录和translog对比,将需要重新操作的数据遍历重新索引

FINALIZE阶段

本阶段执行刷新(refresh)操作,将缓冲的数据写入文件,但不刷盘,数据还在操作系统的cache中

DONE阶段

DONE阶段将再次执行refresh,然后更新分片状态为恢复完成

副分片恢复流程

副分片恢复的核心思想是从主分片拉取 Lucene 分段和 translog 进行恢复 。 按数据传递的方

向,主分片节点称为 Source ,副分片节点称为 Target。

索引恢复过程的一个难点在于如何维护主副分片的一致性。 假设副分片恢复期间 一直有写

操作,如何实现一致呢?

我们先看看早期的做法:在 2.0 版本之前,副分片恢复要经历三个阶段 。

阶段1 :将主分片的 Lucene 做快照,发送到 target 。期间不阻塞索引操作,新增数据写到主分片的 translog 。 阶段2 : 将主分片 translog 做快照,发送到 target 重放,期间不阻塞索引操作 。

阶段3 : 为主分片加写锁,将剩余的 translog 发送到 target。 此时数据量很小,写入过程的阻塞很短 。

从2.0版本开始 引入 translog.view 概念的同时, 阶段3被删除 。这个阶段是重放操作( operations ),同时防止新的写入 Engine 。 这是不必要的,因为自恢复开始,标准的 index 操作会发送所有的操作到正在恢复中的分片。 重放恢复 开始时获取的 view 中的所有操作足够保证不丢失任何操作 。

阶段1:在主分片所在节点, 获取 translog 保留锁, 从获取保留锁开始,会保留 translog不受其刷盘清空的影响 。然后调用 Lucene 接口把 shard 做快照,快照含有 shard 中己经刷到磁盘的文件引用,把这些 shard 数据复制到副本节点。在 phase1结束前 ,会向副分片节点发送告知对方启动 Engine ,在 phase2 开始之前,副分片就可以正常处理写 请求了。

阶段2 : 对 translog 做快照,这个快照里包含从 phase !开始,到执行 translog 快照期间 的新增索引 。 将这些 translog 发送到副分片所在节点进行重放。

[外链图片转存失败(img-0DvuW7de-1567323878798)(/Users/haizhi/Library/Application Support/typora-user-images/image-20190707182408714.png)]

  • 查看集群中所有索引恢复的状态和进度

  • #查看集群中所有的索引恢复进度
    GET _cat/recovery?v
    
  • 查看单个索引的恢复状态、进度

  • #查看单个索引恢复详情
    GET /haizhi1/_recovery?pretty
    
  • 查看索引恢复状态统计

    GET /_all/_stats?level=shards&pretty
    

    查看索引恢复信息

https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-recovery.html

详解ES分片 分片可以理解为是将一个大型索引拆分成多个较小部分的机制。ES中所有数据会均衡的存储在集群中各个节点的分片中。分片是一种存储形式概念,并非物理隔离。 阅读详情

相关推荐

Elasticsearch基础篇(七):分片大小修改和路由分配规则

这样设计可以提高系统的可用性和容错性,因为数据的多个副本分布在不同的节点上,即使某个节点发生故障,系统仍然可以继续工作。副本分片是主分片的完整复制,位于不同的节点上。主分片的数量是索引创建时固定的,因为这个值与数据的分布和索引结构有关。每个索引都被划分成若干个主分片,每个主分片都是一个独立的索引。往索引中增加100条数据,文档分布如下:三个主分片的文档数量正好为100,随着文档数量的增加,三个主分片的数量会越来越均衡。在完成重新索引后,将应用中的写操作切换到新的索引,确保新数据写入新的索引。

后端开发 4848

关于ES分片设置的6个建议

通过时序型索引,用户还能随着时间推移轻松调整主分片和副本分片的数量,这是因为用户可针对要生成的下个索引进行这方面的更改。Elasticsearch 在对数据进行再平衡(例如发生故障后)时移动分片的速度取决于分片的大小和数量,以及网络和磁盘性能。尽管并没有关于分片大小的固定限值,但是人们通常将 50GB 作为分片上限,而且这一限值在各种用例中都已得到验证。,但是在此限值范围内,您设置的分片数量越少,效果就越好。从集群角度来说,索引和分片都不是免费的,因为每个索引和分片都会产生一定的资源开销。

大数据,大模型,服务器,技术、架构,方案 1万+

Elasticsearch(ES)的经典面试题及其答案

以下是一些Elasticsearch(ES)的经典面试题及其答案,结合高频考点和实际应用场景整理而成:以上问题覆盖了 Elasticsearch 的核心知识点,如需更深入的技术实现或源码分析,可进一步参考官方文档或相关书籍(如《Elasticsearch 权威指南》)。

liao9416的博客 5839

elasticsearch 分片和副本

一.分片   分片包括主分片和副本分片,主分片的数量在创建索引时就固定下来了,无法更改主分片数量。 1.es的分片是使用在索引上,数据量少的建议使用1个分片,每个分片最好不超过30GB。你认为你的数据能达到200GB, 我们推荐你最多分配7到8个分片。 2.过多的分片也需要额外的成本:   1)每个分片本质上就是一个Lucene索引, 因此会消耗相应的文件句柄, 内存和CPU资源。   2)每个...

weixin_43394129的博客 1644

es集群节点数和分片数关系_elasticsearch 集群启动流程

es 的集群启动过程要经历选举主节点、主分片、数据恢复等重要阶段,理解其中原理和细节,对于解决或避免集群维护过程中可能遇到的脑裂,无主,恢复慢,丢数据等问题有重要作用。本文基于es 5.5.3版本,以通俗的语言描述流程中的原理和机制。基于版本:5.5.3相对于节点启动流程,我们通常更关注集群启动流程,这次不研究细节,说说原理和机制。集群启动整体流程:选举主节点选主是对Bully算法的改进,主要思路...

weixin_30446393的博客 733

深入理解Elasticsearch分片

了解分片的基本原理,对Elasticsearch性能调优有帮助。

qq_35939417的博客 5024

Elasticsearch索引分片的数量及大小分配策略

Shard即数据分片,是ES的数据载体。在ES中数据分为primary shard(主分片)和replica shard(副本分片),每一个primary承载单个索引的一部分数据,分布于各个节点,replica为某个primary的副本,即备份。分片分配的原则是尽量均匀的分配在集群中的各个节点,以最大程度降低部分shard在出现意外时对整个集群乃至服务造成的影响。

Elastic开源社区 2万+

【总结】扩大ES索引分片数的3个方案

在实际业务开始前应充分评估当前集群的状态和未来的增长趋势,但是由于没有做好容量规划与评估,没有设计灵活的代码,或者不熟悉硬件的性能等原因,随着单个索引数据越来越多,初始设置的分片较少已经满足不了读写性能的需要,最终不得不改。:拆分后,Elasticsearch 集群会自动调整这些新分片在集群内的分布,确保数据在各个节点之间均匀分布,从而提高整体集群的性能和稳定性。如果你还没有大量的数据并且可以重新索引,此时回头还不晚,立即创建指定一个更大的主分片数的新索引。方案三:分片拆分(Split)

大数据,大模型,服务器,技术、架构,方案 2545

【Elasticsearch】Elasticsearch的分片和副本机制

Elasticsearch是一种分布式搜索和分析引擎,它具有高扩展性和高可用性。为了实现这些特性,Elasticsearch引入了分片(Shard)和副本(Replica)的概念。本文将详细介绍Elasticsearch中的分片和副本机制,帮助读者理解它们的重要性及其实现方法。分片是Elasticsearch中存储数据的基本单位。一个索引可以由多个分片组成,每个分片都是一个独立的Lucene索引。通过分片,Elasticsearch可以将数据分布到多个节点上,从而实现数据的分布式存储和并行处理。

屿小夏.的知识博客 7万+

Elasticsearch集群的数据一致性问题及其在大数据环境下的应用

当数据写入Elasticsearch集群时,它首先会被分配到一个主分片(primary shard),然后主分片会将数据复制到一个或多个副本分片(replica shard)。这是因为主分片和副本分片之间的复制是异步的,可能存在一定的延迟。然而,由于分片之间数据复制的异步性质,不同分片上的数据可能存在一定的延迟和不一致性。通过等待刷新,可以增加数据一致性的保证,但也会带来一定的性能开销。参数来指定读取操作的首选分片副本。通过等待副本分片与主分片之间的数据同步完成,可以增加读取操作的一致性。

2301_79366177的博客 417

Elasticsearch 索引的分片和副本是什么意思,如何扩展分片

当你在 Elasticsearch 中创建一个索引时,你可以指定该索引被分成多个分片(Shard)。分片是索引的基本构建块,每个分片都是一个独立的 Lucene 索引,它包含了一部分你的数据。分片允许你水平扩展你的索引以处理更大的数据量。

杨杨杨~~的博客 2340

ElasticSearch分片

本文内容参考了田雪松老师编著的《ElasticSearch作为一个搜索引擎,会存储海量的数据。而存储海量的数据,就要解决如何存储的问题,并且保证数据不会丢失,同时还需要保证数据检索的效率,尽可能不会因为数据的增加而影响检索速度。

fengshi95的博客 2271

SAP CO-PA获利分析避坑指南:从数据采集到报表设计的5个关键步骤

本文深入解析了SAP CO-PA获利分析模块从数据采集到报表设计的完整流程。文章重点剖析了数据源头、特征派生、获利段设计等关键步骤,并对比了基于账户与基于成本核算两种模式的差异,特别强调了在S/4HANA时代的选择与常见陷阱,旨在帮助企业构建可靠、可执行的盈利分析体系。

flink9streamer的博客 827

深度解析:什么是 Elasticsearch 的分片?它在集群中的作用是什么?(分布式架构核心)

一、分片基础定义:什么是 Elasticsearch 分片?分片架构总流程图二、分片核心分类:主分片 vs 副本分片2.1 主分片(Primary Shard)2.2 副本分片(Replica Shard)分片与副本关系图三、分片核心作用:为什么必须使用分片?3.1 作用一:突破单机存储限制(水平扩展)3.2 作用二:提高并发处理能力(高性能)3.3 作用三:分布式集群架构基础3.4 作用四:故障容错与高可用3.5 作用五:提升查询与聚合效率四、分片工作流程:数据如何写入与查询。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2292

1.3 重叠因子:希尔伯特变换趋势线(Hilbert Transform - Instantaneous Trendline)概念与Python实战

希尔伯特变换趋势线(Hilbert Transform - Instantaneous Trendline)是一种基于希尔伯特变换的高级技术分析工具。它使用数字信号处理技术来识别价格的主导周期,并生成一条平滑的趋势线。这种方法可以有效过滤市场噪音,提供更准确的趋势信号。

Kewin的博客 2087

C# WinForm项目目录结构详解:从入门到精通(附常见问题解决方案)

本文详细解析了C# WinForm项目目录结构,从解决方案与项目基础结构到核心文件功能,再到关键目录解析,帮助开发者快速掌握WinForm项目组织方式。文章还提供了常见问题解决方案,如引用丢失、配置文件不生效等,是WinForm开发从入门到精通的实用指南。

dream的博客 647

ElasticSearch搜索引擎常见面试题总结

一、ElasticSearch基础: 1、什么是Elasticsearch: Elasticsearch 是基于 Lucene 的 Restful 的分布式实时全文搜索引擎,每个字段都被索引并可被搜索,可以快速存储、搜索、分析海量的数据。 全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。 2、Elasticsearch 的基本概念: (1)index 索

张维鹏的博客 5万+

[Dify实战] 招投标标书智能生成:模板套用 + 风险校验

摘要:本文提出基于Dify构建AI标书生成工作流,解决传统标书撰写中内容重复(80%复用率)、人工修改效率低、风险检查易出错等痛点。方案包含三大核心模块:1)智能生成(基于模板自动填充项目信息);2)风险校验(AI自动检查废标风险点);3)多角色协作。通过拆分标书结构、设置详细Prompt、建立风险检查清单,实现从"人工撰写"到"参数化自动生成+AI审核"的转型,最终输出标准格式文档并支持企业系统集成。典型应用场景下,系统能自动生成技术方案并识别关键风险(如支付安全合

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 828

ElasticSearch 实战:主副分片写一致性原理以及quorum机制

在 Elasticsearch 中,为了保证数据的高可用性和一致性,采用了主副分片(Primary and Replica Shards)以及 Quorum 机制来处理写操作。

qq_33240556的博客 1104

Qt界面美化-飞扬青云自绘控件插件的使用-避免采坑

1、先上一个集成到QtCreater中的效果图: 2、飞扬青云自绘控件插件下载地址:https://gitcode.net/mirrors/feiyangqingyun/qucsdk?utm_source=csdn_github_accelerator 3、集成插件到QtCreater中的方法: (1)、查看自己使用的QtCreater的版本信息,我的:Qt 5.15.2 MSVC2019 64位 (2)插件下载下来后工程预览: 我选择msvc版本的SDK,打开找到匹配的SDK:...

小米的修行之路 2793

MIKE水动力笔记17_MIKE文件转shp、统计每个单元格的面积

MIKE的工具箱中自带一个转shp的工具,然后可以拖进ArcGIS中很方便的统计每个单元格的面积和每个网格点的水深。

晏长街的博客 4153

ELK 系列十、elasticsearch索引模版设置,规划分片和副本

目录 1、索引模版设置 1.0 了解下分片和副本 1.1 新建或修改模版 1.2 删除索引模版 1.3 查询模版 2、预设置索引,设置分片和副本 1、索引模版设置 1.0 了解下分片和副本 分片和副本: es中的分片share相当于关系型数据库的表分区,一般一个分片处理30g的存储数据,如果规划中有300g可分10个分片 根据建议,至少需要 10 个分片。 结果: 建...

wuwei的博客 8389

DeepSeek 赋能招投标全流程智能化:多模态解析、知识图谱与投标文件自动生成实战指南(附完整代码与行业案例)

摘要:本文深入探讨DeepSeek技术在招投标领域的全流程智能化应用,通过整合自然语言处理(NLP)、多模态解析、知识图谱等核心技术,实现招标文件智能解析与投标文件自动生成。文中详细解析DeepSeek-R1模型的多模态处理机制、动态知识图谱构建方法及智能模板填充算法,通过完整代码实现展示技术细节。结合广某资源交易平台、山西XX"XX云"等典型案例,验证技术方案在提升招投标效率、降低人为错误方面的显著效果。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1464

【DevOps】深入剖析Elasticsearch的分片与副本对性能的影响

在 Elasticsearch 中,分片(Shards)和副本(Replicas)是确保数据分布和高可用性的核心概念。正确地配置分片和副本对于优化搜索和索引性能至关重要。本文详细说明了分片和事本的概念,以及对性能的影响,并举例说明了最佳实践。

TradingAgents-CN专栏 3528

Cadence OrCAD Capture 原理图中创建差分对约束的两种常用方法

本文介绍在原理图设计阶段,添加差分对的方法。

fydar的博客 3932

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Elasticsearch 的节点、集群、分片和副本 全面解析

每个节点都是一个独立的工作单元,负责存储数据、参与数据处理(如索引、搜索、聚合等)以及参与集群的协调工作。一个索引由多个主分片和对应的副本分片组成。例如,若一个索引配置了 5 个主分片和每个主分片有 1 个副本,则该索引总共有 10 个分片(5 个主分片 + 5 个副本分片)。集群是由一个或多个节点组成的 Elasticsearch 实例集合,它们协同工作,对外表现为单一的搜索和索引服务。每个索引可以被划分为多个分片,每个分片都是一个完整的 Lucene 索引,包含索引的一部分数据。

专注于数据库技术分享,包含但不限于Oracle,MySQL,PostgreSQL,ElasticSearch及国产数据库等 2279

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

下一篇: kafka概述
周庄
博客等级 码龄10年 3粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值