05 elasticSearch的架构设计的简单介绍

1 架构图

架构设计图

2 节点自动发现机制

es内部,通过在集群中配置一个相同的集群名称(cluster.name)就能够将不同的节点链接到一个集群中。这是怎么实现的呢?—> 节点自动发现机制

es内部主要提供了4种自动发现机制。其中一个是默认实现,其他都是通过插件实现的。

  • Azure discovery: 多播模式
  • EC2 discovery: 多播模式
  • Google Computer Engine (GCE)discovery : 多播模式
  • Zen discovery : 默认实现,支持多播和单播模式。

Zen discovery是es内置的默认的发现模块。发现模块用于发现集群中的节点以及选举主节点(master 节点)。支持多播和单播模式,并且可以通过插件的方式扩展为其他形式的发现机制。

简单了解一下多播和单播模式的配置参数

discovery.zen.ping.multicast.enabled: true  # 表示关闭多播模式的自动发现机制,主要是为了防止其他机器上的节点自动接入
discovery.zen.fd.ping_timeout: 100s  # 表示设置了节点与节点之间连接ping命令执行时间的超时时长
discovery.zen.ping.timeout: 100s # 表示设置了节点与节点之间连接ping命令执行时间的超时时长
discovery.zen.minimum_master_nodes: 2  # 表示集群中选举主节点时,至少需要有多少个节点参与
discovery.zen.ping.unicast.hosts: ["172.31.26.200"]  # 表示在单播模式下,节点自动发现哪些节点列表

2.1 单播模式

es支持多播和单播模式两种节点自动发现机制。不过多播模式已经不大被大多数操作系统所支持,加之安全性不高,所以一般关闭多播模式。

discovery.zen.ping.multicast.enabled: true

es默认就是单播模式,以防止其他节点无意加入集群。es支持同一个主机启动多个节点,因此只有在同一台机器上运行的节点参会自动组成集群。当集群的节点运行在不同的机器上时候,在单播模式下,需要为es配置一些它应该取尝试链接的节点列表

discovery.zen.ping.unicast.hosts: ["172.31.26.200","172.31.26.201"] 

集群构建和主节点选举大致过程如下:

  1. 节点启动后,先执行ping命令(这个命令不是我们常说的Linux下的ping命令,而是es的一个rpc命令),如果discovery.zen.ping.unicast.hosts配置了host地址,则ping该配置中的host地址。否则尝试ping 本地(localhost)的几个端口。ping命令的返回结果包含该节点的基本信息以及该节点认为的主节点
  2. 选举开始时,主节点先从各个节点认为的主节点中选取,选举规则比较简单,即按照ID的字典排序,取第一个。需要注意的是,这里有个集群中节点梳理的的最小限制条件discovery.zen.minimum_master_nodes。如果节点数达不到这个最小限制,则循环上述过程,直到节点数量超过最小限制数,才可以开始选举。
  3. 最后选出一个主节点,如果只有一个本地节点,则主节点就是他自己
  4. 如果当前节点是主节点,则开始等待节点数达到discovery.zen.minimum_master_nodes,在提供服务。如果不是主节点,则尝试加入主节点所在的集群。

2.2 多播模式

仅仅需要在每个节点上配置号集群的名称和节点名称即可。互相通信的节点会根据es自定义的服务发现协议,按照多播的方式寻找网络上配置在同样集群内的节点。

3 节点类型

es中,每个节点可以有多个角色,节点即可以是候选主节点,也可以是数据节点。

节点的角色配置在elasticsearch.yml中配置

node.master: true # 是否是候选主节点
node.data: true # 是否是数据节点

数据节点负责数据存储相关的操作,比如对数据的增删改查和聚合等。所以数据节点对服务器的配置要求会比较高。
候选主节点,才拥有选举权(选举主节点)和被选举权(被选为主节点)。

主节点就要负责创建索引,删除索引,追踪集群中节点的状态,以及跟踪哪些节点是集群的一部分,并决定将哪些分片分配给相关的节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值