使用Elasticsearch的一些经验
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Elasticsearch的一些经验,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1886字,纯文字阅读大概需要3分钟。
内容图文
![使用Elasticsearch的一些经验](/upload/InfoBanner/zyjiaocheng/987/f70967e5575243919a2445d194dc5003.jpg)
01
简单逻辑架构介绍
在如上所示就是线上log日记处理简单的逻辑架构。业务中的源数据有一些JAVA程序的log和一些业务程序log收集,然后通过写入到kafka的对应Toptic,收集到的log存放在kafka中,然后通过kafka的consumer程序处理把log收集存放到后端的ES集群。
我的观点简单的介绍了我们线上利用ES的情况后,下面给大家分享一下在使用ES的一些经验!
02
一些有用的配置
1
优化mapping, 禁用_all, 不对不是查询条件的field建索引
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
打开慢查询慢索引日志和GC日志
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
限制 fielddata cache 的堆内存占比, 设置合适的indices.breaker(断路器)
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
单机多实例时, 配置主从分片在不同的机器
03
遇到的坑
1
避免深度分页的检索
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
避免没有指定索引的检索和会查询很多个索引的检索
04
一些经验
1
写入压力变小时,集群的反应会变快
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
单个实例hold更少的分片和数据时,内存压力会变小,反应会变快
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
日志检索场景下, 越新的数据检索的频率会越高;老数据的检索需求有,但不多;
05
还需要优化的地方
1
抽出独立的查询节点和master节点 (获取更高的性能和易扩展性)
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
冷热分离(数据方面)
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
GC优化 (主要是针对默认的GC回收机制,增加GC次数,较少GC时间,因为当GC发生的时候,java程序基本不工作;特别是老态heap回收时间。)
![使用Elasticsearch的一些经验 - 文章图片](/upload/getfiles/0001/2021/5/14/20210514125256448.jpg)
更好的安全 (可执行scripts脚本和端口开放、漏洞方面。)
架构变动说明
由于数据的冷热状态,什么叫数据的冷热状态呢。就是你时时查看的肯定是最新的数据,当你需要告警数据也好,还是数据分析也好,大多数场景下你分析的是最新的数据,最新的数据被称之为热数据;而冷数据即为历史数据,也可称之为伪静态的数据,也就是你不会时时和经常的去分析和查看的数据,但是这部分数据你以后可能会用着。比如你年底去统计你们一年线上业务用户量的统计这么一个数据,那你这部分冷数据是必须的数据源。针对这样的业务场景:
1、我们可以把冷热数据分别放到不同的ES集群当中去,让最新的数据选择写入到最新的ES集群,这样就得到你程序端控制写入后端ES存储机器名称。
2、我们也可以不增加新的集群,只是增加新的机器,然后给这新增加的一批机器打上一个tag,可以在配置文件中设置node.zone = zone_one 参数来控制。从而修改创建索引的参数,控制索引创建到属于这个zone空间的机器上面,把新写入的数据引入到新增加的机器上面,而老数据则存储在了以前集群中的那批集群上面。
内容总结
以上是互联网集市为您收集整理的使用Elasticsearch的一些经验全部内容,希望文章能够帮你解决使用Elasticsearch的一些经验所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。