Elasticsearch 2.2.0 节点发现详解

    在Elasticsearch中,节点之间可以相互发现,并把相同集群名称的节点统一成一个集群,那节点是如何发现的呢,这次就谈一下节点发现的一些内部细节。在Elasticsearch内部,zen发现机制是默认的发现模块。它提供了单播发现方式,能够很容易的扩展至云环境。发现模块和其他模块集成,例如所有节点的通信是通过传输模块。发现模块分成两个模块。

ping模块,通过ping模块可以寻找其他节点。

单播模块,需要提供一个主机列表作为路由列表。以discovery.zen.ping.unicast作为前缀。

配置         描述

hosts        是一个数组的配置,或以逗号分隔的字符串。格式为host:port,或者host[port1-port2],ip6的主机必须放                    在括号内,例如127.0.0.1, [::1]。

单播发现依赖传输模块实现。注意port默认应该是9300。

主节点选举

    在集群中,会自动通过ping来来进行相互选举或者加入主节点。discovery.zen.ping_timeout(默认3秒)配置允许对选举的时间进行调整,用来处理缓慢或拥挤的网络。当一个节点请求加入主节点,它会发送请求到信息到主节点,请求的超时时间配置为discovery.zen.join_timeout,这个时间比较长,是discovery.zen.ping_timeout时间的20倍。

    当主节点发生问题的时候,现有的节点又会通过ping来从新选举一个新的主节点。当discovery.zen.master_election.filter_client设置为true的时候,在选举主节点的时候从客户端节点(node.client为true,或者node.data和node.master同时为false)的ping操作将被忽略,默认为true。当discovery.zen.master_election.filter_data为true。在选举主节点的时候从数据节点(node.data为ture,node.master同时为false)的ping操作将被忽略,默认为false。主节点配置为true的节点一直都有选举的资格。

当节点node.master设置为false后者node.client设置为true的时候,他们将自动排除成为主节点的可能性。

discovery.zen.minimum_master_nodes设置需要加入一个新当选的主节点的最小节点数目或者接受它的作为主节点的最小节点数。如果不满足这一要求,主节点会下台,一个新的选举将重新开始。

故障检测

    有两种方式进行故障检测,第一个是由主节点到所有其他节点的验证,证明他们还活着。另一中,是每个节点ping主节点验证,当主节点有故障的时候会启动选举过程。控制故障检测过程使用discovery.zen.fd前缀设置:

ping_interval:ping检查的频率。默认值为1秒。

ping_timeout:ping的超时时间,默认为30秒。

ping_retries:多少次ping失败或者超时的节点被认为是失败的。默认3次。

    主节点是一个集群中唯一的节点,可以改变集群的状态。主节点处理一个群集状态的更新,适用于所需的更改,并将更新的群集状态发布到集群中的所有其他节点上。每个节点接收发布消息,更新它自己的群集状态,并对主节点进行应答,该主节点等待所有节点响应,然后在处理下一个更新的队列前进行超时处理。discovery.zen.publish_timeout默认为30秒,可以通过动态配置进行设置。

    一个健康的集群必须有一个主节点,并且有多个满足主节点选举条件的节点,这个数字由discovery.zen.minimum_master_nodes设置。discovery.zen.no_master_block设置没有有效的主节点时应拒绝的操作。它有两个选择。

all:这个节点上的所有行为被拒绝,包括读写,同时拒绝集群状态的读写操作,比如得到索引设置。

write:基于最后一次的群集配置,写操作被拒绝,允许读操作。这可能会导致部分读取的数据是过期的,因为这个节点已经从群集中分离,这个是默认设置。

 discovery.zen.no_master_block 设置不适用于节点的API例如cluster stats, node info和 node stats apis

    赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。也欢迎加入secisland公众号进行关注

转载于:https://my.oschina.net/secisland/blog/619686

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值