【愚公系列】2022年05月 .NET架构班 062-分布式中间件 Elasticsearch的介绍

举报
愚公搬代码 发表于 2022/05/09 23:29:45 2022/05/09
【摘要】 前言Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)...

前言

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

Elasticsearch是全文搜索引擎。

  • 全文搜索:客户端输入“100周年”,能够把数据库中一段话查询出来,就是全文搜索。
  • 引擎:能够完成全文搜索这件事情的工具。就叫做引擎。

在这里插入图片描述

一、Elasticsearch的诞生背景

Elasticsearch主要用在微服务系统中。

1.单体电商系统

在这里插入图片描述
执行过程:查询订单实现过程,客户端发起查询请求—>电商系统—->电商数据库—>订单表和商品表进行关联。

问题:如果电商系统并发量,业务量,数据量全部上升之后,单体系统查询,添加,修改,删除性能会急剧下降。进一步甚至会导致系统宕机(宕机也就是无法访问),如果系统出现了宕机问题,直接导致客户端无法访问。

解决方案:需要进行业务模块拆分,形成电商微服务系统。

2.电商微服务系统

在这里插入图片描述
执行过程:查询订单实现过程,客户端发起查询请求—>电商网站—->订单微服务—>电商数据库、电商网站—->商品微服务—>电商数据库。

问题:一次订单查询需要涉及到2个微服务(订单微服务、商品微服务)查询。如果并发量比较大,会导致两个微服务查询性能下降。因为是同步请求,同步请求并发处理有限。如果2个微服务其中一个微服务宕机了,会导致无法进行查询。

解决方案:使用Elasticsearch

3.电商微服务系统Elasticsearch的架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行过程:客户端发起查询请求—>电商网站—->Elasticsearch。

在Elasticsearch中可以一次性查询出订单商品数据。而且还可以提升性能

总结:这就是我们在电商系统中使用Elasticsearch原因

  • 先从单体电商系统分析
  • 然后再从电商微服务系统分析
  • 最后引入Elasticsearch
  • 由此得到微服务系统中为什么要使用Elasticsearch
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。