集群状态维护
我们都知道,ES 中的master 跟一般MySQL,Hadoop的master是不一样的。
它即不是写入流浪的唯一入口,也不是所有数据的元信息的存放地点。
所以,一般来说,ES 的master 节点负载很轻,集群性能是可以近似认为随着data节点的扩展性提升的。
但是, 上面这句话不是完全正确的
ES 中有一件事情是只有master节点能管理的,这就是集群状态(cluster state)
集群状态中包括以下信息;
1.集群层面的设置
2.集群内有哪些节点
3.各索引的设置,映射,分析器和别名等
4.索引内各分片所在的节点位置
ela01:/usr/local/elasticsearch-2.3.4/config# curl -XGET http://192.168.11.192:9200/_cluster/state
这些信息在集群的任意节点上都存放着,你可以通过/_cluster/state 接口读取到其内容,
注意这最后一项信息, 之前我们已经讲过ES怎么通过简单地知道一条数据放在哪个分片里,
加上现在集群状态里又记载了分片在哪个节点上,那么,整个集群里,任意节点都可以知道一条数据在哪个节点上的存储了。
所以,数据读写才可以发送给集群里任意节点
至于修改, 则只能由master节点完成!显然,集群状态是大部分内容是极少变得的,唯独有一样除外---索引的映射。