【ES的优势和原理及分布式开发的好处与坏处】

这篇具有很好参考价值的文章主要介绍了【ES的优势和原理及分布式开发的好处与坏处】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ES的优势及分布式开发的好处

1.ES的优势

1.1 优势概述

  • 支持多种数据类型,非结构化,数值,地理信息。
  • 简单的 RESTful API,天生的兼容多语言开发。
  • 提供更丰富的分词器,支持热点词汇查询。
  • 近实时查询,Elasticsearch 每隔 1s 把数据存储至系统缓存中,且使用倒排索引提高检索效率。
  • 支持相关性搜索,可以根据条件对结果进行打分。
  • 天然分布式存储,使用分片支持更大的数据量。

1.2 相关问题

1)为什么需要 Elasticsearch?MySQL 不行吗?

  • MySQL 也可以但不擅长

  • 传统关系型数据库(如 MySQL )在大数据量下查询效率低下, 模糊匹配有可能导致全表扫描。

  • MySQL 全文索引只支持 CHAR , VARCHAR 或者 TEXT 字段类型,不支持分词器。

2)SQL检索的问题:

  1. 慢:全表扫描
  2. 结果有限:搜索“明月",也希望看到"明","月"的结果…
  3. 无法得到文档与搜索条件的相关性

3)ES检索快的原理

将磁盘里的东西尽量搬进内存,减少磁盘随机读取次数 (同时也利用磁盘顺序读特性),结合各种压缩算法,用及其苛刻的态度使用内存。精打细算每一块内存、磁盘空间、用诡谲的位运算加快处理速度。

  • 为了能够快速定位到目标文档,ES 使用倒排索引技术来优化搜索速度,虽然空间消耗比较大,但是搜索性能提高十分显著。
  • 为了能够在数量巨大的 terms 中快速定位到某一个 term,同时节约对内存的使用和减少磁盘 io 的读取,lucene 使用 “term index -> term dictionary -> postings list” 的倒排索引结构,通过 FST 压缩放入内存,进一步提高搜索效率。
  • 为了减少 postings list 的磁盘消耗,lucene 使用了 FoR (Frame of Reference)技术压缩,带来的压缩效果十分明显。
  • ES 的 filter 语句采用了 Roaring Bitmap 技术来缓存搜索结果,保证高频 filter 查询速度的同时降低存储空间消耗。
  • 在联合查询时,在有 filter cache 的情况下,会直接利用位图的原生特性快速求交并集得到联合查询结果,否则使用 skip list 对多个 postings list 求交并集,跳过遍历成本并且节省部分数据的解压缩 cpu 成本。

2.分布式开发的好处与坏处

好处:

1、增大系统容量。我们的业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,我们需要多台机器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。

2、加强系统可用。我们的业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。

3、因为模块化,所以系统模块重用度更高

4、因为软件服务模块被拆分,开发和发布速度可以并行而变得更快

5、系统扩展性更高

6、团队协作流程也会得到改善

坏处:

1、架构设计变得复杂(尤其是其中的分布式事务)

2、部署单个服务会比较快,但是如果一次部署需要多个服务,部署会变得复杂

3、系统的吞吐量会变大,但是响应时间会变长

4、运维复杂度会因为服务变多而变得很复杂

5、架构复杂导致学习曲线变大

6、测试和查错的复杂度增大

7、技术可以很多样,这会带来维护和运维的复杂度

8、管理分布式系统中的服务和调度变得困难和复杂

资料来源:

1、Elasticsearch为什么搜索这么快 - 知乎 (zhihu.com)

2、分布式优缺点_分布式的优点-CSDN博客文章来源地址https://www.toymoban.com/news/detail-728570.html

到了这里,关于【ES的优势和原理及分布式开发的好处与坏处】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • “源擎”云原生分布式核心业务系统有什么产品优势?

    “源擎”核心系统 利用云原生、分布式、微服务技术,基于企业架构设计思想,构建了基础服务、业务服务、交易中心以及系列支撑组件,包含业务架构和多个微服务应用。 业务架构中, 交易中心 为银行提供了更灵活的选择,支持产品粒度的功能可替换,同时也能快速引入

    2023年04月26日
    浏览(34)
  • 项目1在线交流平台-6.Elasticsearch分布式搜索引擎-3.ES结合Kafka应用-开发社区搜索功能

    参考牛客网高级项目教程 狂神说Elasticsearch教程笔记 尚硅谷Elasticsearch教程笔记 1.在业务层处理好搜索帖子的服务 包括保存帖子到ES服务器 从服务器中删除帖子 从服务器中查询帖子 2.发布事件 在controller层,结合kafka,发布帖子、增加评论时,数据放入消息队列 异步消费消息

    2024年02月02日
    浏览(40)
  • 分布式多主关系数据库的底线业务优势

    当今的应用程序(包括企业应用程序)需要始终开启且始终可用,并且通常必须为全球用户提供服务,这些用户无论身在何处都希望获得几乎即时的响应时间。 应对这些挑战不仅仅意味着让用户更满意:每个能够解决低延迟和超高可用性的根本问题的企业都会获得直接的底线

    2024年02月06日
    浏览(30)
  • 分布式爬虫与SOCKS5代理池的组合优势

    在数据驱动的时代,网络爬虫成为了获取大量信息的重要工具。然而,随着网站反爬策略的升级,传统的单机爬虫面临着速度慢、易被封禁等问题。为了应对这些挑战,我们可以尝试将分布式爬虫与SOCKS5代理池相结合,提高爬虫的性能和稳定性。 分布式爬虫简介 a.什么是分布

    2024年02月10日
    浏览(26)
  • 【ES】分布式集群

    本文主要参考尚硅谷的资料,少部分自己原创,有错误之处请指出。 node-1001配置如下: 坑1:如果之前启动过此 ES 服务,需要删除 data文件夹以及logs里面的所有日志,否则可能配置失效 坑2: discovery.seed_hosts以及cluster.initial_master_nodes不需要配置 ,否则访问此 ES 服务会报错找

    2024年02月09日
    浏览(27)
  • 【分布式搜索引擎es】

    elasticsearch最擅长的是 搜索 和 数据分析 。 查询文档 常见的查询类型包括: 查询所有 :查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询 :利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query multi_match_query 精确查询 :根据精确

    2024年02月10日
    浏览(38)
  • 分布式搜索引擎ES

    elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 ELK技术栈 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应

    2024年02月04日
    浏览(29)
  • 【ES】【elasticsearch】分布式搜索

    因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络: docker镜像官网https://hub.docker.com/search?q=elasticsearch 运行docker命令,部署单点es: 命令解释: -e \\\"cluster.name=es-docker-cluster\\\" :设置集群名称 -e \\\"http.host=0.0.0.0\\\" :监听的地址,可以外网访问 -e \\\"ES

    2024年02月12日
    浏览(26)
  • 分布式搜索分析引擎ES

    es是实时的分布式搜索分析引擎: 实时表现在新增到ES中的数据1s中就可以被检索到,这种新增数据对搜索的可见性成为“准实时搜索”。 分布式意味着可以动态调整集群规模,弹性扩容,支持上百个节点,相比 HDFS 等上千台的集群,更适合中等数据量的业务,不适合存储海

    2024年03月12日
    浏览(37)
  • 分布式搜索引擎es-3

    什么是聚合? 聚合 可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么 品牌 的手机最受欢迎? 这些手机的 平均 价格、 最高 价格、 最低 价格? 这些手机每 月的销售情况 如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包