Elasticsearch模块功能之-自动发现(Discovery)
自动发现(Disovery)
该模块主要负责集群中节点的自动发现和Master节点的选举。节点之间使用p2p的方式进行直接通信,不存在单点故障的问题。Elasticsearch中,Master节点维护集群的全局状态,比如节点加入和离开时进行shard的重新分配。
自动发现机制在目前版本(1.3.1)提供了四种选择,一种是默认实现,其他都是通过插件实现。
1. Azure discovery 插件方式,多播
2. EC2 discovery 插件方式,多播
3. Google Compute Engine (GCE)discovery 插件方式多播
4. zen discovery默认实现 多播/单播
多播配置下,节点向集群发送多播请求,其他节点收到请求后会做出响应。配置参数如下:
- discovery.zen.ping.multicast.group:224.2.2.4 组地址
- discovery.zen.ping.multicast.port:54328 端口
- discovery.zen.ping.multicast.ttl:3 广播消息ttl
- discovery.zen.ping.multicast.address:null绑定的地址,null表示绑定所有可用的网络接口
- discovery.zen.ping.multicast.enabled:true 多播自动发现禁用开关
单播配置下,节点向指定的主机发送单播请求,配置如下:
- discovery.zen.ping.unicast.hosts:host1:port1,host2,:port2
选举Master节点:
在ping主节点过程中,节点会加入到集群中或者会被选举为主节点,发送主节点的超时时间有餐宿discovery.zen.join_timeout来控制,默认为3s,对于配置node.master为false的节点启动后不会作为主节点的候选。discovery.zen.minimum_master_nodes配置当前集群中最少的主节点数,对于多于两个节点的集群环境,建议配置大于1。
故障检测:
一般存在两个故障检测过程。第一个是主节点周期性的ping其他节点。第二就是其他节点周期的ping主节点。相关参数:
- ping_interval:1s节点被ping的频率
- ping_timeout:30s等待ping返回的时间
- ping_timeout:3重试次数,超过该次,就认为该节点不可用
【参考:】http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index.html
相关推荐
其中,`template`模块用于动态生成配置文件,`elasticsearch.yml.j2`是Jinja2模板文件,你可以根据实际需求定制Elasticsearch的配置参数。 执行Playbook时,使用命令`ansible-playbook deploy_es.yml`,Ansible会...
可以显式定义或由Elasticsearch自动检测。 **Indexed(索引化):** 指创建文档索引的过程。默认情况下,所有字段都会被索引,但也可以根据需求选择不索引某些字段。 **Query DSL(查询域特定语言):** 一种用于...
Elasticsearch的集群发现机制是通过discovery.zen模块来实现的,而节点间的消息传递则由Transport模块负责。集群的发现机制负责自动发现集群中的其他节点,以便于节点间通信和协调。Elasticsearch还提供了数据恢复...
- **Elasticsearch背后的核心理念**:Elasticsearch的核心设计理念包括分布式的特性、易于使用的RESTful API、自动发现机制、以及强大的搜索功能。这些设计使得Elasticsearch成为大规模数据处理的理想选择。 - **...
ElasticSearch的自动发现机制允许集群中的节点自动找到彼此,并且能够支持单点故障的容错。Zen Discovery是ElasticSearch的默认发现机制,支持Multicast和Unicast模式。针对云环境,如EC2的自动发现也是一个重要的...
3. **分布式特性**:Elasticsearch是分布式的,这意味着数据可以在多个节点间分布并自动进行复制和路由。源码中会涉及集群通信、数据一致性保证(如Zen Discovery和RAFT协议)以及Shard分配策略。 4. **实时分析**...
- Elasticsearch Puppet模块:`elastic/puppet-elasticsearch` - Logstash Puppet模块:`elastic/puppet-logstash` - 其他辅助Puppet模块:`puppetlabs/puppetlabs-vcsrepo`、`puppetlabs/puppetlabs-git`、`...
- 自动发现:Elasticsearch的节点可以通过多种自动发现机制加入集群,包括Zen Discovery和云环境的发现机制。 接口使用示例: - 增删改查操作:Elasticsearch提供了REST API进行数据的CRUD操作。 - 搜索请求:通过...
Elasticsearch 是一款基于 Apache Lucene 的开源搜索服务器,专为云环境设计,提供实时、稳定、高效且可扩展的全文搜索功能。这款工具在2016年1月已成为全球最受欢迎的搜索引擎类应用,超越了Solr等竞争对手。...
2. **Master 选举**:Elasticsearch 使用 ZenDiscovery 模块进行主节点选举。节点间通过 Ping 进行通信,通过 Unicast 单播发现彼此。选举过程是所有可成为主节点的节点根据节点 ID 排序,得票数超过半数(n/2+1)且...
X-Pack是Elasticsearch的一个扩展插件,提供了多种重要的功能模块,包括但不限于安全性、监控、报告和报警等功能。具体而言: - **安全性**:X-Pack支持基于角色的访问控制,允许管理员为不同用户分配不同的权限,...
Discovery.Zen是Elasticsearch集群发现机制的一部分,它允许节点动态地加入或离开集群。通过P2P的方式,每个节点可以发现网络中的其他节点,并建立连接。 ##### 8. **Transport** Transport是Elasticsearch内部...
组织结构Poseidon├── psd-config -- 通用配置├── psd-discovery -- Eureka注册中心├── psd-elastic-search -- 基于Elasticsearch的商品搜索,推荐服务├── psd-gateway -- 网关服务├── psd-generate -...