集群发现机制
默认情况下,es进行会邦定 在自己的回环地址上,也就是127.0.0.1,然后扫描本机上的9300-9305端口号,尝试跟那些端口号上启动的其他ES进程进行通信,然后组成一个集群。对于本机搭建es集群开发环境是很方便的,但是对于生产环境是不行的,需要将每台ES进程绑定在一个非回环的IP地址上,才能跟其他节点进行通信,同时需要使用集群发现机制来跟其他节点上的es node进行通信。
在生产环境中多台机器上部署ES节点,就涉及到ES的discovery机制,也就是集群各个节点互相发现然后组成一个集群的机制,同时discovery 负责es集群的master选举
es是一种peer to peer,也就是p2p点对点的系统构架,集群中每个node 是直接跟其他节点进行通信的,而不是hadoop生态系统中那种master-slave分布式系统构架,几乎所有的API操作,不如index,delete,search等都不是client与master通信,而是client跟任何一个node 进行通信,然后node再将请求转发给对应的node来进行执行
master node 主要负责维护整个集群的状态信息,也就是集群元数据信息,同时再node加入集群或者从集群卸载时,重新分配shard,包括每次集群状态如果有改变的,那么master都会负责将集群状态同步给所有的node,其他的node 就是负责数据的写入和读取
首先在elasticsearch.yml 中配置 cluster.name ,多个node配置一样,才能组成一个集群。
默认es中discovery机制是 zen discovery机制 ,提供了unicast discovery 集群发现机制ÿ