ElasticSearch优化系列一:集群节点规划

节点职责单一,各司其职

elasticSearch的配置文件中有2个参数:node.master和node.data。这两个参 数搭配使用时,能够帮助提供服务器性能。

数据节点node.master: false node.data: true

该node服务器只作为一个数据节点,只用于存储索引数据。使该node服务器功能 单一,只用于数据存储和数据查询,降低其资源消耗率。

master节点node.master: true node.data: false

该node服务器只作为一个主节点,但不存储任何索引数据。该node服务器将使用 自身空闲的资源,来协调各种创建索引请求或者查询请求,讲这些请求合理分发到相关 的node服务器上。

负载均衡节点 node.master: false node.data: false

该node服务器即不会被选作主节点,也不会存储任何索引数据。该服务器主要用 于查询负载均衡。在查询的时候,通常会涉及到从多个node服务器上查询数据,并请 求分发到多个指定的node服务器,并对各个node服务器返回的结果进行一个汇总处理, 最终返回给客户端。

关闭data节点服务器中的http功能

针对ElasticSearch集群中的所有数据节点,不用开启http服务。将其中的配置 参数这样设置:http.enabled: false,同时也不要安装head, bigdesk, marvel等监控 插件,这样保证data节点服务器只需处理创建/更新/删除/查询索引数据等操作。

http功能可以在非数据节点服务器上开启,上述相关的监控插件也安装到这些服 务器上,用于监控ElasticSearch集群状态等数据信息。

这样做一来出于数据安全考虑,二来出于服务性能考虑。

一台服务器上最好只部署一个Node

一台物理服务器上可以启动多个Node服务器节点(通过设置不同的启动port),但一台服务器上的CPU,内存,硬盘等资源毕竟有限,从服务器性能考虑,不建议一台服务器上启动多个node节点。

在大规模局点,比如100个点,可以专门配备3个Master,可使用3台具有内存的刀片即可,即参数配置为node.master: true,node.data: false;可以按比例配备数据汇聚节点,比如10个,即参数配置为node.master: false ,node.data: false;小规模节点,可以不用如此设置,当然如果依然有性能问题,也是一个优化的措施。

参考文档

1、ElasticSearch性能优化策略(https://wenku.baidu.com/view/82b082b5998fcc22bcd10df4.html) 2、elasticsearch三个重要的优化(http://zhaoyanblog.com/archives/319.html)

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-11-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端技术探索

大型网站架构系列:消息队列

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件...

591
来自专栏小二的折腾日记

服务器-Nginx设计架构

Nginx服务器启动后,产生一个主进程,主进程执行一系列工作后产生一个或多个工作进程。

592
来自专栏IT技术精选文摘

JMS与ActiveMQ

JMS是Java消息服务的缩写,它提供了一种以松耦合且灵活的方式对应用进行集成的机制。JMS以异步的方式在应用之间进行数据的存储转发。应用之间以MOM(面向消息...

1725
来自专栏蓝天

与慢速设备通讯异步化方案

与慢速设备通讯异步化方案.pdf像MySQL、被对接的银行系统等,都可称作慢速设备。它们的共同特点是只提供了同步调用接口,而且响应通常会比较慢。

561
来自专栏从零开始的linux

PHP rabbitmq Work queues

RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。如果不熟悉AMQP,直接看Rabbi...

3167
来自专栏菩提树下的杨过

Asp.Net4.0/VS2010新变化(5):可扩展的(分布式)缓存

.net3.0/3.5时代,asp.net的outPut缓存默认只能存放于内存中,但是内存资源是有限的,这就导致了缓存的无法扩展。 而asp.net4.0中允...

1765
来自专栏性能与架构

分布式消息队列 Kafka

Kafka是一个高吞吐量的、分布式的消息系统,由Linkedin开发,开发语言为scala 具有高吞吐、可扩展、分布式等特点 适用场景 活动数据统计 活...

3385
来自专栏技术换美食换不换

消息队列

712
来自专栏性能与架构

Nginx/ZooKeeper 负载均衡的差异

Nginx是著名的反向代理服务器,也被广泛的作为负载均衡服务器 ZooKeeper是分布式协调服务框架,有时也被用来做负载均衡 那么他们的区别是什么?如何选...

4087
来自专栏积累沉淀

kafka学习之路(二)——提高

消息发送流程 因为Kafka内在就是分布式的,一个Kafka集群通常包括多个代理。为了均衡负载,将话题分成多个分区,每个代理存储一或多个分区。多个生产者和消费...

1957

扫描关注云+社区