登录 |  注册
首页 >  中间件·网站架构 >  Elasticsearch初学者入门学习笔记 >  Elasticsearch 在互联网公司中的应用场景

Elasticsearch 在互联网公司中的应用场景

elasticsearch.jpg

      刚接触Elasticsearch的朋友,或多或少会遇到一个问题,Elasticsearch在实际公司应用中除了搜索到底能做什么?国内现在有大量的公司都在使用 Elasticsearch,包括携程、滴滴、今日头条、饿了么、360安全、小米、vivo等诸多知名公司。除了搜索之外,结合Kibana、Logstash、Beats,Elastic Stack还被广泛运用在大数据近实时分析领域,包括日志分析、指标监控、信息安全等多个领域。它可以帮助你探索海量结构化、非结构化数据,按需创建可视化报表,对监控数据设置报警阈值,甚至通过使用机器学习技术,自动识别异常状况。

es.png

一、国外互联网公司应用场景

1)Github(一个面向开源及私有软件项目的托管平台)。

GitHub是世界上最大的代码托管平台,超5千万开发者正在使用。Github使用Elasticsearch搜索20TB的数据,包括13亿的文件和1300亿行的代码”。Github在2013年1月升级了他们的代码搜索,由solr转为Elasticsearch,目前集群规模为26个索引存储节点和8个客户端节点(负责处理搜索请求)。

2)Foursquare

Foursquare是一家基于用户地理位置信息的手机服务网站,并鼓励手机用户同他人分享自己当前所在地理位置等信息。“实时搜索5千万地点信息?Foursquare每天都用Elasticsearch做这样的事“。

3)SoundCloud

“SoundCloud使用Elasticsearch来为1.8亿用户提供即时精准的音乐搜索服务”。SoundCloud是一家德国网站,提供音乐分享社区服务,成长很快,Alexa世界排名已达第236位。你可以在线录制或上传任何声音到SoundCloud与大家分享,可在线上传也可以通过软件客户端来上传音乐文件,没有文件大小限制,但免费版限制上传音频总长不可超过2个小时播放时长,每首歌曲限最多100次下载。SoundCloud允许音乐通过Flash播放器方式嵌入到网页中。

4)Fog Creek(美国的一家软件公司)

“Elasticsearch使Fog Creek可以在400亿行代码中进行一个月3千万次的查询“。

5)StumbleUpon

”Elasticsearch是StumbleUpon的关键部件,它每天为社区提供百万次的推荐服务“。StumbleUpon是个能发现你喜欢的网页的网站,进去时先注册,注册完就选择你感兴趣的东西,它会自动帮你推荐一些网页,如果你喜欢这个网页就点喜欢按钮,按 stumble按钮就会推荐下一个网页。目前其数据量达到 25亿,基本数据存储在HBase中,并用 elasticsearch建立索引,elasticsearch 在其中除了用在搜索功能还有在推荐和统计功能。之前他们是使用solr作为搜索,由于solr满足不了他们的业务增长需要而替换为 elasticsearch。

还有很多国外的公司都用到了es,这里就不过多举例了, 下面列列国内大家都熟悉的互联网公司。

二、国内互联网公司应用场景

  • 京东到家订单中心 Elasticsearch 演进历程

  • 携程Elasticsearch应用案例

  • 滴滴Elasticsearch多集群架构实践

  • Elasticsearch实用化订单搜索方


国内现在有大量的公司都在使用 Elasticsearch,包括携程、滴滴、今日头条、饿了么、360安全、小米、vivo等诸多知名公司。

除了搜索之外,结合Kibana、Logstash、Beats,Elastic Stack还被广泛运用在大数据近实时分析领域,包括日志分析、指标监控、信息安全等多个领域。

它可以帮助你探索海量结构化、非结构化数据,按需创建可视化报表,对监控数据设置报警阈值,甚至通过使用机器学习技术,自动识别异常状况。

1)京东到家订单中心

京东到家.jpg京东ES架构.png

Elasticsearch 做为一款功能强大的分布式搜索引擎,支持近实时的存储、搜索数据,在京东到家订单系统中发挥着巨大作用,目前订单中心ES集群存储数据量达到10亿个文档,日均查询量达到5亿。随着京东到家近几年业务的快速发展,订单中心ES架设方案也不断演进,发展至今ES集群架设是一套实时互备方案,很好的保障了ES集群读写的稳定性。

2)携程酒店订单Elasticsearch应用案例

携程.png

携程ES架构

携程酒店日均订单量达到百万,由于对这预计4亿的数据量还需按照预定日期、入住日期、离店日期、订单号、联系人姓名、电话、酒店名称、订单状态……等多个条件查询。所以简单按照某一个维度进行分表操作没有意义,Elasticsearch分布式搜索储存集群的引入,就是为了解决订单数据的存储与搜索的问题。

3)滴滴Elasticsearch的应用

Elasticsearch 在滴滴有着非常丰富的使用场景,例如线上核心的打车地图搜索,客服、运营的多维度查询,滴滴日志服务等近千个平台用户。

先看看滴滴 Elasticsearch 单集群的架构:滴滴在单集群架构的时候,写入和查询就已经通过 Sink 服务和 Gateway 服务管控起来。

滴滴架构.png

滴滴几乎所有写入 Elasticsearch 的数据都是经由 kafka 消费入到 Elasticsearch。kafka 的数据包括业务 log 数据、mysql binlog 数据和业务自主上报的数据,Sink 服务将这些数据实时消费入到 Elasticsearch。

4)Elasticsearch实用化订单搜索方案

搜索引擎中,主要考虑到Elasticsearch支持结构化数据查询以及支持实时频繁更新特性,传统订单查询报表的痛点,以及Elasticsearch能够帮助解决的问题。

订单搜索架构.png

订单搜索系统架构

整个业务线使用服务化方式,Elasticsearch集群和数据库分库,作为数据源被订单服务系统封装为对外统一接口;各前、后台应用和报表中心,使用服务化的方式获取订单数据。

订单搜索架构2png.png

上一篇: ES(elasticsearch)搜索引擎简介
下一篇: Elasticsearch 架构中的几个概念
推荐文章
  • 一、Kafka简介Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、sto
  • 1.环境清单CentOS7 Java8 Maven3.5 MySQL5.7 CAT2.0.0 Tomcat7.02.安装CAT2.0下载CAT安装包:CAT的官方github地址:https://github.com/dianping/cat/tree/master打开页面之后,进行如下操作:2.1
  • 一.安装并启动sendmailyum install -y sendmail systemctl start sendmail二.修改Grafana配置文件,设置发件人vim /etc/grafana/grafana.ini在[smtp]标签下修改配置[smtp] enabled = true ho
  • 想用最简单的方式去理解Elasticsearch能为你做什么,那就是使用它了,让我们开始吧!安装并运行Elasticsearch安装Elasticsearch之前,你需要先安装一个较新的版本的Java,最好的选择是,你可以从www.java.com获得官方提供的最新版本的Java。之后,你可以从el
  • 简介:Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为ElasticStack的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。版本说明Java环境:JDK1.8.0Elasticsearch:7.2.1OS环境:wi
  • Java9、Java10、Java12和Java13均为短期版本。我们建议您不要使用以上版本,除非您准备好应对这种快速发布节奏。有关JVM支持,请参见Oracle的时间表,网址为:http://www.oracle.com/technetwork/java/eol-135779.html**Elas
学习大纲