分片理论知识
-
分片数量
总分片数=主分片数(副分片数+1)
"settings": {
"number_of_shards": 1,
"number_of_replicas": 4
}
复制代码上面创建索引配置表示,总分片数=1(1+4),表示总共5个分片。 -
分片优势
通过把分片放在不同节点,可以存储超过单节点容量的数据
当主分片节点故障后,可升级一个副分片为新的主分片来应对节点故障
增加副分片,可以把数据存储到更多节点上,支持集群扩容和更好处理并发请求
实验一
- 两个数据节点
- 索引设置2个主分片,0个副本分片
//添加索引setting
PUT twitter
{
"settings" : {
"number_of_shards" : 2,
"number_of_replicas" : 0
}
}
//查看索引setting
GET /twitter/_settings
//插入数据
PUT /twitter/_doc/1?pretty
{
"name": "John Doe"
}
GET /_cat/indices/twitter?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open twitter GQDcXrB7R0KwzHJnAcRePg 2 0 1 0 3.7kb 3.7kb
GET _cat/shards/twitter?v
index shard prirep state docs store ip node
twitter 1 p STARTED 0 283b 192.168.1.100 node-2
twitter 0 p STARTED 1 3.5kb 192.168.1.104 node-3
- 计算存储
3.75kb = 3.5kb + 283b
一个文档只会分片到某一个主分片上,但是其他的主分片,会保存元数据信息
网友评论