- 集群的目的(本质)
- 实现高并发
- 避免单节点故障
- 实现海量的数据存储
- ES的几大核心思想
- Cluster:集群 默认为“elasticsearch”
- Node:节点 一个或者多个节点加入集群
- Shard:分片-单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。每个shard都是一个lucene index。
- Repilca:复制品-replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。
- 集群的健康状况
- green - 所有的分片都是活跃的
- yellow -主分片都是活跃的,部分复制分片处于不活跃状态(not active),此时集群依旧可用
- red-有主分片处于不活跃状态,此时集群不可以(数据分散存储)
- ES节点类型
- 默认情况下,elasticsearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。在生产环境下,如果不修改elasticsearch节点的角色信息,在高数据量,高并发的场景下集群容易出现脑裂等问题。这些功能是由两个属性控制的。node.master 和 node.data 默认情况下这两个属性的值都是true。
- 主节点:主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点。一般会把主节点和数据节点分开,node.master=true , node.data=false
- 数据节点:主要是存储索引数据的节点,主要对文档进行增删改查操作,聚合操作等,数据节点对CPU,IO,内存要求较高,优化节点的时候需要做状态监控,资源不够时要做节点扩充。配置:mode.master=false,mode.data=true
- 负载均衡节点:该节点只能处理路由请求,处理搜索,分发索引操作等,从本质上来说该客户节点表现为智能负载平衡器。配置:mode.master=false,mode.data=false
node.master | true | 是否是主节点 |
---|---|---|
node.data | true | 是否存储数据 |
- 111