ES分片
分片:Shard
1.分片的基本概念
分片可以理解为索引的碎片,并且所有碎片都是可以无限复制的
2.分片的种类
主分片(primary shard)
副分片(replica shard)
3.分片的作用和意义
高可用性:提高分布式服务的高可用性。
提高性能:提供系统服务的吞吐量和并发响应的能力。
易扩展性:当集群的性能不满足业务要求时,可以方便快速扩容集群,而无需停止服务。
4.分片的基本策略
1.一个索引包含一个或多个分片,在7.0之前默认五个主分片,每个主分片一个副本;在7.0之后默认一个主分片。副本可以在索引创建之后修改数量,但是主分片的数量一旦确定不可修改,只能创建索引。
2.每个分片都是一个Lucene实例,有完整的创建索引和处理请求的能力。
3.es会自动再Nodes上做分片均衡shard reblance。
4.一个doc不可能同时存在于多个主分片中,但是当每个主分片的副本数量不为一时,可以同时存在多个副本中。
5.主分片和副本分片不能同时存在于同一个节点上。
6.完全相同的副本不能同时存在于同一个节点上。
1 2 3 4 5 6 7 8 | #查看索引的详细信息 GET _cluster /allocation/explain GET _cluster /allocation/explain { "index" : "new_tykh_econtract_web2023-01-27" , "shard" : 0, "primary" : false } #对外分片的索引进行分片$ curl --user xxxx:xxxx -X POST "localhost:9200/_cluster/reroute?retry_failed=true"#查询前几条索引数据curl -XGET "http://ip:9200/_search?size=1" |
5.索引的组成
索引的组成 GET tykh_wechat_wx_web_1992023-01-26 "aliases" : { }, #索引的别名 "mappings" : { #索引的映射 "settings" : { #索引的设置
#修改索引的settings
PUT 索引名/_settings
{
"number_of_shards" : "2",
"number_of_replicas" : "1"
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!