ElasticSearc 学习3

ElasticSearc 学习3,第1张

ElasticSearc 学习3 ElasticSearch 集群

Es支持集群,简单配置即可,隐藏了分布式的复杂性

  • 集群架构
  • 解决高可用,分担请求压力
  • 分布式架构
  • 分担存储和计算压力,提速,解耦
  • 集群分布式架构

    配置,是否是候选节点,是否仅是数据节点
node.master: true
node.data: true

集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体。

分片

ES在后台将一个索引划分多个分片存储,集群中,一个索引分布到不同分片存储在不同节点,构成分布式搜索。
主分片
副分片: 每个主分片可以有多个副本,数据和主分片一样,作用:一提高系统容错;二自动对搜索负载均衡。

自平衡: 当节点挂掉,挂的节点的分片会自平衡到其他节点

Seetings{
"number_of_shards":3,//主本片
"number_of_replicas":1//副本分片,表示每个主分片有一个副本分片
}

路由
es计算分片编号的过程,称为路由
路由算法:
shard_index=hash(id)%number_of_primary_shards

脑裂
一个正常的es集群中只有一个master节点,负责整个集群的管理,创建删除索引,跟踪从节点,决定分片分配给从节点
脑裂:从节点选择主节点产生分歧,出现多个主节点,集群分裂,处于异常状态

产生情况:
1.网络延迟导致,例如使用外网部署集群
2.节点负载:主节点即为master 又data,高并发,导致master停止响应

node.mater:true
node.data:true

3.JVM内存回收,mater节点设置的JVM内存较小,JVM频繁内存回收,es失去响应

解决方法
1.网络延迟:discovery.zen.ping.timeout超时设置大一点,默认3s,外网建议10s
2.节点负载:责任单一,角色分离策略,

node.mater:true
node.data:false

或相反

3.JVM,内存设置为主内存的一半,config/jvm.options -Xms

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5696640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存