ElasticSearch应用场景详解(4大最典型应用场景)

ElasticSearch应用场景详解(4大最典型应用场景)-mikechen

ElasticSearch是一款大数据场景下的分布式全文搜索引擎,目前使用越来越多,下面重点详解ElasticSearch的应用场景。

搜索引擎

ElasticSearch为搜索而生,用于搭建全文搜索系统是自然而然的事情,它能够提供快速的索引和搜索功能。

在这类场景中较典型的应用领域是,

  1. 电商搜索;
  2. 地图搜索;
  3. 新闻搜索;
  4. 等各类站内搜索。

举个简单的例子,比如:要买手机,你登陆淘宝后,在搜索框搜索”手机“,会出现N个手机和手机周边的搜索数据。

ElasticSearch应用场景详解(4大最典型应用场景)-mikechen

再比如:类似百度,在网站的站内搜索,IT系统的检索等等,都是典型的搜索应用场景。

 

日志分析

ElasticSearch官方提供的ELK,也就是Elasticsearch+Logstash+Kibana全家桶简称,可以完成日志采集再到可视化的数据分析工作。

日志分析整体架构,如下图所示:

ElasticSearch应用场景详解(4大最典型应用场景)-mikechen

Logstash主要用于:采集日志,作为日志的搜集、分析、过滤日志等的工具,支持大量的数据获取方式。

日志主要包括:系统日志、应用程序日志、以及安全日志等。

日志的作用:系统运维和开发人员可以通过日志了解服务器软硬件信息,经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

日志采集之后,我们可以使用ElasticSearch来作为数据存储,以及搜索使用,暴露出具体的API等接口(基于RESTful web接口),然后使用Kibana来展示界面。

这里的Kibana的主要作用:Kibana为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

 

海量数据查询

目前大量的系统用MySQL作为数据库,但随着业务的开展数据量会越来越大,而MySQL的性能会越来越差。

虽然可以通过分库分表的方案进行解决,但是操作比较复杂,而且往往每隔一段时间就需要进行扩展,这种情况下可以将数据从MySQL同步到Elasticsearch。

改进后,整体架构如下图所示:

ElasticSearch应用场景详解(4大最典型应用场景)-mikechen

针对实时性要求不太高,或者主要查询历史数据且数据量比较大的场景:使用ElasticSearch提供查询。

而对需要事务实时控制的即时数据还是通过MySQL存储和查询。

 

独立的数据库系统

Elasticsearch本身提供了数据持久化存储的能力,并且提供了增删改查的功能。

在某些应用场景下:可以直接当做数据库系统来使用,既提供了存储能力,又能够同时具备搜索能力。

例如:博客系统、评论系统等应用场景。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法