【愚公系列】2022年05月 .NET架构班 062-分布式中间件 Elasticsearch的介绍
前言
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
- 点赞
- 收藏
- 关注作者
评论(0)