ElasticSearch自动发现机制——zen

只须要配置相同的cluste.name就能将节点加入同一集群,这是经过ES的发现机制来实现的。 ES目前主要推荐的自动发现机制,有以下几种:node

  1. Azure classic discovery 插件方式,多播
  2. EC2 discovery 插件方式,多播
  3. Google Compute Engine (GCE) discovery 插件方式,多播
  4. Zen discovery 默认实现,多播/单播

其中,Zen Discovery 是 ES 默认内建发现机制。它提供单播和多播的发现方式。bash

多播

也叫组播,指一个节点能够向多台机器发送请求。ES 不建议生产环境使用这种方式,对于一个大规模的集群,组播会产生大量没必要要的通讯。网络

discovery.zen.ping.multicast.address:(用于通讯的网络接口)
discovery.zen.ping.multicast.port:(通讯端口)
discovery.zen.ping.multicast.group:(组播消息发送的地址)
discovery.zen.ping.multicast.buffer_size:(缓冲区大小)
discovery.zen.ping.multicast.enable:(是否开启组播,默认为true,使用单播,应该关闭组播,设为false)
复制代码

单播

一个节点加入一个现有集群,或者组件一个新的集群时,发送请求到一台主机。当一个节点联系到单播列表中的成员时,它就会获得整个集群全部节点的状态,而后它会联系 master 节点,并加入集群。并发

discovery.zen.ping.unicast.hosts:(集群初始节点列表)
discovery.zen.ping.unicast.concurrent_connections:(单播发现使用的最大并发连接数,默认为10)
复制代码

脑分裂(split-brain)

假设拥有一个10个节点组成的集群,有3个节点从集群中 断开链接,因为发现机制,这3个节点可能会组成一个新的集群,这样就产生了两个同名的集群,这就是脑分裂(split-brain)。 为了不这种分裂的出现,能够设置如下属性:spa

discovery.zen.minium_master_nodes:6
复制代码

定义组件集群至少须要相互链接的候选主节点数量。这时断开的3个节点因为小于6,不能组成新的集群。插件

相关文章
相关标签/搜索