ElasticSearch自动发现机制——zen

博客介绍了ES的自动发现机制,主要有Azure classic、EC2、Google Compute Engine的插件方式(多播)以及默认的Zen discovery(多播/单播)。多播不建议用于生产环境,单播可让节点加入或组建集群。还提到了脑分裂问题,即部分节点断开可能形成新集群,并给出避免分裂的设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

多播

也叫组播,指一个节点可以向多台机器发送请求。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)。 为了避免这种分裂的出现,可以设置以下属性:

discovery.zen.minium_master_nodes:6
复制代码

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

转载于:https://juejin.im/post/5cde22e86fb9a063fb20284a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值