本文主要是介绍Elasticsearch发展趋势,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Elastic社区火热发展
目前,ES作为全文索引的事实霸主,名气在国内赶超Solr,企业、政府、学校等等纷纷开始倒向Elasticsearch。
ES社区非常活跃,可与当下AI风、Blink流处理风争芳。
国内一流互联网不仅仅使用ES来做日志分析,ES已经承担起很多企业的核心业务数据库的职责。
ES与DB取长补短,在构建大型应用时使用简洁、能够达到很可观的性能与规模,堪称最佳实践。
阿里、腾讯、字节跳动、普翔科技、新东方、vivo、网易等等一批最先吃螃蟹的人已经积累了一大批的使用经验;阿里、腾讯等在源码上也贡献颇多,成为ES骨灰级玩家。
小白有幸参加了2019年Elastic中国开发者大会,通过观摩大佬的分享,也得到了一些收获,分享给大家。水平有限,有误不吝赐教。
1 关于架构
1.1 中台固化经验探索
数据中台是一个企业数据量发展到一定阶段的产物。
一般从系统化->到平台化->再到中台化,企业业务越来越复杂,接入的垂直数据类型越来越丰富,简单的业务逻辑已经不能粗暴的解决问题。
这时候需要更加精细化的调控,把使用ES过程中的‘坑’(如index过大判断/shard过多判断/数据不均衡判断/非法操作截断)固化为使用经验,嵌入中台,使得集群稳定运行,不要等崩溃后去救急,要未雨绸缪。
1.2 集群容器化管理
当前,微服务、云原生理论大行其道。撇开此不谈,单从客户的角度去考虑,如何像用水用电一样使用ES,这就必然要求我们向容器化去深入探索。
k8s+docker+ES使用实践成为亟需探讨的话题。
1.3 多集群管理
一个ES集群在6.x版本之前官方口径在200个node左右达到极限,7.x版本对node之间通信做了优化,据说应该能够支持更多nodes的集群。但在庞大的业务需求下,这个仍然是不够的。
多集群数据生命周期管理、多集群代理网关、多集群日志监控、多集群数据安全等成为了一个平台必须要考虑的问题。
1.4 计算存储分离
某些知名公司已经做到计算存储架构分离,利用存储的纠删码特性,3副本情况下还能节省50%存储空间,数据导出性能提升100%。
ES在设计上具有天然的弹性特性,这一点Solr在7.x版本才开始引入。弹性伸缩特性为服务化做好了准备,同时也将有利于计算存储分离架构的实现。
2 关于应用
2.1 数据生命周期管理
Elasticsearch自身在此方面做的越来越完善,然而,官方也不是先行者,敢于吃螃蟹的人已经在此方面做出了很多的探索。冷热分离也好,数据治理也好,他们在使用Elasticsearch时已经达到了专家水平。所以,使用Elasticsearch,并把它用好,需要专业的人来做。
2.2 与数据总线的交互实践
数据总线,我们这里指的是消息中间件,如何利用CDC机制通过数据总线打通DB或者其他类型的数据存储库与ES的联动,处理业务问题,这方面需要新加入Elasticsearch的人做出更多的实践探索。
2.3 向量检索插件+中文分词器插件
当前,向量检索算法已经成为热门,如何使用向量检索技术打通图片、音频等等文件的索引查询成为炙手可热的技术趋势。
某些公司分词器插件支持新词索引热启动,在分词器上已经做出很多的优化。
2.4 数据导入与查询实践
之所以单独把这一点列出来,是因为目前ES的数据导入仍然大多数情况下是瓶颈;有些公司已经探索出直接通过Lucene接口消费数据然后restore到集群中的实践,据了解速度大幅提升,而牺牲的实时性也并不严重。其他玩家也有一些通过修改一些硬件配置或者自身就是硬件厂商,对使用ES做出了底层优化。
3 关于源码+理论研究
ES发展到现在,基于Lucene做出了很多技术上的优秀实践。
搜索引擎设计、列存储、聚合框架、BKD数据、稀疏矩阵、Rollups、Dense-vector、Data Frame、数据一致性、分布式等等,这里的每一个词汇也需要应用者自身技术做出突破才能在现有的基础上去改进。
这篇关于Elasticsearch发展趋势的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!