深入解析 Elasticsearch 集群
在使用 Elasticsearch 时,除了搜索功能,集群的运行和管理也是至关重要的。本文将详细介绍 Elasticsearch 集群的相关知识,包括节点发现、节点角色配置、Zen 发现机制、集群状态更新控制等内容。
1. 理解节点发现
当启动 Elasticsearch 节点时,首先会寻找具有相同集群名称且可见的主节点。若找到主节点,该节点将加入已形成的集群;若未找到,在配置允许的情况下,该节点将被选为新的主节点。这个形成集群和发现节点的过程被称为发现,负责发现的模块有两个主要目的:选举主节点和发现集群内的新节点。
1.1 发现类型
默认情况下,不安装额外插件时,Elasticsearch 使用 Zen 发现,它提供单播发现功能。单播允许在网络上一次向单个主机传输一条消息。Elasticsearch 节点会向配置中定义的节点发送消息并等待响应。当节点被集群接受后,恢复模块会根据需要启动恢复过程,若主节点尚未选举,则启动主节点选举过程。
在 Elasticsearch 2.0 之前,Zen 发现模块支持多播发现。在支持多播的网络中,Elasticsearch 可以自动发现节点,无需指定其他共享相同集群名称的 Elasticsearch 服务器的 IP 地址。但这种方式容易出错,不建议在生产环境中使用,因此已被弃用并移至插件中。
Elasticsearch 架构设计为对等架构。在执行索引或搜索等操作时,主节点不参与通信,相关节点直接相互通信。
2. 节点角色
Elasticsearch 节点可以配置为以下几种角色:
- <