1.复杂的分布式机制,好比分片、副本、负载均衡等等,所有都隐藏起来
2.扩容方案(垂直扩容、水平扩容)
3.增长或者减小节点时的数据rebalance:总有某些服务器的负载会重一些,承载的数量和请求量会大一些
4.mater节点:java
(1)管理es集群的元数据,好比说索引的建立和删除,维护索引元数据;节点的增长和移除,维护集群的元数据 (2)默认状况下,会自动选择出一台节点,做为mater节点 (3)mater节点不承载全部的请求,因此不会是单点瓶颈
5.节点对等的分布式架构node
(1)节点对等,每一个节点都能接收全部的请求 (2)节点的自动路由
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。服务器