Elasticsearch集群所谓脑裂的问题是怎样的
发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,这篇文章将为大家详细讲解有关Elasticsearch集群所谓脑裂的问题是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。所谓脑裂问题(类似于精神
千家信息网最后更新 2024年11月15日Elasticsearch集群所谓脑裂的问题是怎样的
这篇文章将为大家详细讲解有关Elasticsearch集群所谓脑裂的问题是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
所谓脑裂问题(类似于精神分裂),就是同一个集群中的不同节点,对于集群的状态有了不一样的理解。
今天,Elasticsearch集群出现了查询极端缓慢的情况,通过以下命令查看集群状态:
curl -XGET 'es-1:9200/_cluster/health'
发现,集群的总体状态是red,本来9个节点的集群,在结果中只显示了4个;但是,将请求发向不同的节点之后,我却发现即使是总体状态是red的,但是可用的节点数量却不一致。
正 常情况下,集群中的所有的节点,应该对集群中master的选择是一致的,这样获得的状态信息也应该是一致的,不一致的状态信息,说明不同的节点对 master节点的选择出现了异常--也就是所谓的脑裂问题。这样的脑裂状态直接让节点失去了集群的正确状态,导致集群不能正常工作。
可能导致的原因:
1. 网络:由于是内网通信,网络通信问题造成某些节点认为master死掉,而另选master的可能性较小;进而检查Ganglia集群监控,也没有发现异常的内网流量,故此原因可以排除。
2. 节点负载:由于master节点与data节点都是混合在一起的,所以当工作节点的负载较大(确实也较大)时,导致对应的ES实例停止响应,而这台服务器 如果正充当着master节点的身份,那么一部分节点就会认为这个master节点失效了,故重新选举新的节点,这时就出现了脑裂;同时由于data节点 上ES进程占用的内存较大,较大规模的内存回收操作也能造成ES进程失去响应。所以,这个原因的可能性应该是最大的。
应对问题的办法:
1. 对应于上面的分析,推测出原因应该是由于节点负载导致了master进程停止响应,继而导致了部分节点对于master的选择出现了分歧。为此,一个直观 的解决方案便是将master节点与data节点分离。为此,我们添加了三台服务器进入ES集群,不过它们的角色只是master节点,不担任存储和搜索 的角色,故它们是相对轻量级的进程。可以通过以下配置来限制其角色:
node.master: true
node.data: false
当然,其它的节点就不能再担任master了,把上面的配置反过来即可。这样就做到了将master节点与data节点分离。当然,为了使新加入的节点快速确定master位置,可以将data节点的默认的master发现方式有multicast修改为unicast:
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["master1", "master2", "master3"]
2. 还有两个直观的参数可以减缓脑裂问题的出现:
discovery.zen.ping_timeout(默认值是3秒):默认情况下,一个节点会认为,如果master节点在3秒之内没有应答,那么这个节点就是死掉了,而增加这个值,会增加节点等待响应的时间,从一定程度上会减少误判。
discovery.zen.minimum_master_nodes(默认是1):这个参数控制的是,一个节点需要看到的具有master节点资格的 最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量(我们的情况是3,因此这个参数设置为2, 但对于只有2个节点的情况,设置为2就有些问题了,一个节点DOWN掉后,你肯定连不上2台服务器了,这点需要注意)。
以上的解决方法只能是减缓这种现象的发生,并不能从根本上杜绝。
关于Elasticsearch集群所谓脑裂的问题是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
节点
集群
问题
状态
情况
较大
一致
原因
进程
不同
参数
数量
服务器
角色
服务
选择
直观
为此
信息
内存
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
凯乐科技医疗互联网
在线支付软件开发公司
db2 激活数据库
数据库行业前100
网络安全学院研究生
粉红视频软件开发
多gpu服务器调度
数据库工作经验
厦门软件开发的公司
网络安全宣传周会议
网络安全手抄报上的宣传语
火币服务器崩溃了
广州教育直播软件开发
t110服务器装win10
陆伟网络技术
广东哪所软件开发学校好
设计公司用什么服务器最好
山西app手机软件开发
zinc数据库打开很慢
互联网科技哪个公司最好
河北时代网络技术服务产品介绍
数据库中怎么注册一千个用户
服务器更新后还能找回来吗
学软件开发的怎么赚外快
饥荒服务器熔炉怎么开
湖南湘江网络技术有限公司
网络安全钥匙视频
有哪些最新数据库网页
网络安全的利与弊50字
服务器防护系统