ElasticSearch的相关原理
节点的发现机制(zen机制)
Zen机制是elasticsearch的内置机制,用于节点发现.所有节点间通讯必须用trasport模块来完成。
-
集群中的节点相互发现集群
-
负责master选举
Master选举机制
Master选举是由master-eligble节点发起的,当一个master-eligble发现满足以下条件的时候,发起选举
①本master-eligble不是master
②本master-eligble节点通过zen模块的ping操作询问其他已知节点,没有其他任何节点连接到master
③包括本节点,当前已有的超过minimum_master_nodes个节点没有连接到master
怎么进行选举,选举对象是谁呢?
首先必须要是master-eligble,master-eligble的确定是由我们手动指定master为true.
其次是选择排序后的第一个作为master,排序是按照clusterStateVersion来进行比较,clusterStateVersion越大,优先级越高,clusterStateVersion相同的时候,按照节点id进行比较,id是节点第一次启动时随机生成的. -
Ping:发现其他节点,同时支持单播和多播,但是目前建议使用单播
配置信息
discovery.zen.ping.unicast.hosts: [“master”, “slave1”, “slave2”],这里只配置master即可完成节点的发现
分片是如何进行分配
是按照总体均衡分配的,es集群提供设置集群允许分配那种类型的分片,包括所有分片(默认)、主分片、新索引的主分片、禁止所有索引分配分片。
elasticsearch除了从集群整体层面考虑分片分配