1.集群是如何组成的
(1)首先启动第一个节点clusterNode1
第一个节点的一定是主节点,主节点存储的是集群
的元数据信息。
(2)然后启动第二个节点clusterNode2;
启动之前会配置集群的名称cluster-name:escluster1,
然后配置可以作为主节点的IP地址信息["192.168.1.81","192.168.1.82"]
配置自己的IP地址network.host:192.168.1.82
clusterNode2启动的过程中会去找到主节点clusterNode1,告诉
clusterNode1我要加入到集群escluster1里面了,主节点
clusterNode1接收到请求以后看clusterNode2是否满足加入集群的条件,
如果满足就把clusterNode2的ip地址加入的元信息里面,
然后广播给集群中的其他节点,有新节点加入,并把
最新的元信息发送给其他的节点去更新。
2.集群中的索引是符合创建的?
客户端请求到clusterNode3节点创建索引
clusterNode3节点请求转发给master主节点,master主节点
选择节点来存储分片和副本,并记录元信息。
3.集群中如何存放文档?
客户端请求clusterNode3,clusterNode3计算文档路由值并
得到文档存放的分片(如:分片1)
clusterNode3将文档转发给分片1(P1)的主分片节点clusterNode2
clusterNode2索引文档,同步给副本(R1)节点clusterNode1索引文档。
clusterNode2向clusterNode3反馈结果。
clusterNode3做出响应。
4.集群中 如何搜索文档?
客户端搜索索引esindex,并请求clusterNode3
clusterNode3将查询发给索引esindex的分片/副本节点(P0~P5,R0~R5)
各个节点执行查询,将结果给clusterNode3
clusterNode3合并结果,响应客户端。
对于同一次查询请求,ES会在选择某个分片副本进行查询。
例如:
索引esindex中有6个主分片,每个分片有一个副本,
共12个分片,一次搜索请求会由6个分片来完成,
他们可能是主分片也可能是副本分片(如P0,P1,P2,P3,R4,R5)