释放双眼,带上耳机,听听看~!
在Elasticsearch当中,ES分为三种角色:master、data、client。
三种角色由elasticsearch.yml配置文件中的node.master、node.true来控制。
如果不修改elasticsearch的节点角色信息,那么默认就是node.master: true、node.data: true
默认情况下,es集群中的每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务,负载均衡以及数据合并等服务。在高并发的场景下集群容易出现负载过高问题。
角色划分:
master:该节点不和应用创建连接,主要用于元数据(metadata)的处理,比如索引的新增、删除、分片分配等,master节点不占用io和CPU,内存使用量一般
data:该节点和索引应用创建连接、接收索引请求,该节点真正存储数据,ES集群的性能取决于该节点的个数(每个节点最优配置的情况下),data节点会占用大量的CPU、io和内存。
client:该节点和检索应用创建连接、接受检索请求,但其本身不负责存储数据,可当负责均衡节点,client节点不占用io、cpu和内存。
各节点间的关系
master:master节点具备主节点的选举权,有资格成为主节点,主节点控制整个集群的元数据。
data:data节点的分片执行查询语句获得查询结果后将结果反馈给client。此过程较消耗硬件资源。
client:client节点接受搜索请求后将请求转发到与查询条件相关