在es根目录下有一个config目录,在此目录下有两个文件分别是elasticsearch.yml和logging.yml。
logging.yml是日志文件,es也是使用log4j来记录日志的,我在此文件中配置日志级别。
elasticsearch.yml是es的基本配置文件es的参数都在这个文件中,我们这里结合此文件来介绍es的核心概念和参数。
1:集群
node.master: true表示此节点有资格竞争成为主节点。
cluster.name: elasticsearch表示es集群的名称可以自行更改
discovery.zen.ping.multicast.enabled: false 集群的自动发现机制,false不启动
discovery.zen.ping.unicast.hosts: ["host1","host2:port"] 告诉从节点主节点的位置,默认是9300端口。
Es集群由多个节点组成,其中一个为主节点其他为从节点。从节点通过竞争来确定哪个是主节点,一般在集群中第一个启动的符合条件的就是主节点。主节点负责管理集群状态包括管理分片和副本的状态以及节点的增加和删除。
Es集群具有去中心化的概念,我们可以访问集群中的任何一个节点来操作整个集群,不管它是主节点还是从节点只要安装了相关插件就行。
同一个网段内的es节点会自动互相感知自动组成集群。
自动发现机制
Es是基于P2P的系统,当集群启动后会先通过广播寻找存在的节点,再通过多播协议进行节点间的通信进而自动组建es集群,同时也支持节点之间的通信。