一、ES基础概念
1.复杂的分布式机制,比如分片、副本、负载均衡等等,全部都隐藏起来
2.扩容方案(垂直扩容、水平扩容)
3.增加或者减少节点时的数据rebalance:总有某些服务器的负载会重一些,承载的数量和请求量会大一些
4.mater节点:
(1)管理es集群的元数据,比如说索引的创建和删除,维护索引元数据;节点的增加和移除,维护集群的元数据
(2)默认情况下,会自动选择出一台节点,作为mater节点
(3)mater节点不承载所有的请求,所以不会是单点瓶颈
5.节点对等的分布式架构
(1)节点对等,每个节点都能接收所有的请求
(2)节点的自动路由
二、shard和replica机制详解
- index包含多个shard
- 每个shard都是一个最小工作单元,承载部分数据
- 增减节点时,shard会自动的nodes中负载均衡
- 每个document只能存在于一个primary shard中。
- replica shrad是primary shard的副本,负责容错以及承担读请求负载
- primary shard的数量再创建索引的时候就固定了,replica shard的数据可以随时更改
- replica shard 不能和primary shard放在同一个节点上,但是可以和别的primary shard的replica shard 放在同一个节点
三、指定index的primary shard的数量
PUT /test_index
{
"settings":{
"number_of_shards":3,
"number_of_replicas":1
}
}
四、容错的过程
当有一个node宕机,这个机器上的某个primary shard 就没了,此时status就不是active,状态也会修改成red。
(1) 容错第一步:mater 选举,自动选择另一个node成为新的mater,承担起master的责任
(2) 容错第二步:新的master,将丢失掉的primary shard的某个replica shard提升为primary shard,此时cluster status会变为yellow,因为primary shard 全部都变成了active。但是少了一个replica shard,所以不是所有的replica shard 都是active
(3)容错第三步:重启故障的node,新的mater会将缺失的副本都时copy一份到该node上,而且该node会使用之前已有的shard数据,只是同步一下宕机之后发生过的修改。cluster status 变为green。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。