【ES系列】Elasticsearch简介:为什么需要它?(基础篇)

🔥 本文将详细介绍Elasticsearch的前世今生,以及为什么它在当今的技术栈中如此重要。本文是ES起飞之路系列的基础篇第一章,适合想要了解ES的读者。

在这里插入图片描述

文章目录

    • 一、什么是Elasticsearch?
      • 1. ES的定义
      • 2. ES的核心特性
        • 2.1 分布式存储
        • 2.2 实时搜索
        • 2.3 高可用性
        • 2.4 RESTful API
      • 3. ELK技术栈简介
        • 3.1 Elasticsearch(存储和搜索引擎)
        • 3.2 Logstash(数据收集和处理)
        • 3.3 Kibana(可视化平台)
    • 二、为什么会出现ES?
      • 1. 传统数据库的痛点
        • 1.1 全文检索效率低
        • 1.2 海量数据分析困难
        • 1.3 水平扩展能力有限
      • 2. ES的解决方案
        • 2.1 倒排索引机制
        • 2.2 分布式架构
        • 2.3 实时分析能力
    • 三、同类型产品对比
      • 1. 主流搜索引擎对比
      • 2. 产品特点分析
        • 2.1 Solr
        • 2.2 Splunk
        • 2.3 OpenSearch
      • 3. 适用场景对比
    • 四、为什么选择ES?
      • 1. 技术优势
      • 2. 应用场景广泛
      • 3. 成熟的生态系统
    • 五、ES的发展历程
      • 1. 版本演进
      • 2. 重要特性更新
      • 3. 未来发展趋势
    • 小结

一、什么是Elasticsearch?

1. ES的定义

Elasticsearch(简称ES)是一个基于Apache Lucene构建的开源搜索引擎,由Elastic公司开发和维护。它不仅仅是一个搜索引擎,更是一个分布式的文档存储和分析引擎,能够存储、搜索和分析大规模数据。

想象一下,ES就像是一个超级强大的图书馆管理系统。在这个系统中,你可以存放海量的"图书"(数据),并且能够在几毫秒内找到你想要的任何"图书"。不仅如此,它还能帮你分析这些"图书"的各种信息,比如哪类书最受欢迎、不同时期的阅读趋势等。而且,这个"图书馆"可以根据需求无限扩展,添加更多的"分馆"(节点)来存储更多的数据。

2. ES的核心特性

2.1 分布式存储
  • 支持PB级数据的分布式存储
    • 数据自动分片和备份
    • 集群自动发现和管理

就像一个大型连锁超市,ES可以把数据分散存储在多个"仓库"(节点)中。每个"商品"(数据)都会有多个副本存放在不同的仓库,即使一个仓库出了问题,其他仓库的副本也能确保数据安全。而且,当有新的仓库加入时,系统会自动调整商品的存放位置,确保每个仓库的负载均衡。

2.2 实时搜索
  • 近实时搜索能力(NRT,Near Real-Time)
    • 毫秒级的搜索响应
    • 支持复杂的全文检索

这就像你在使用淘宝搜索商品,输入关键词后立即就能看到结果。ES能在海量数据中快速找到你需要的信息,不管是精确匹配还是模糊搜索,都能在眨眼间完成。比如,你可以搜索"红色运动鞋",ES会立即找出所有包含这些关键词的商品,甚至包括"红色的跑步鞋"这样的相关描述。

2.3 高可用性
  • 多节点架构,无单点故障
    • 自动故障转移
    • 自动数据平衡

这就像一个永不停机的服务系统。即使某个服务点出现故障,其他服务点会立即接管工作,确保服务不中断。就像你在淘宝购物,即使某个服务器出现问题,你依然可以正常浏览和购买商品,因为系统会自动切换到其他正常运行的服务器。

2.4 RESTful API
  • 提供简单的REST API
    • 支持多种编程语言
    • JSON格式数据交互

这就像是ES提供了一个统一的"万能插座",不管你使用什么编程语言(Java、Python、PHP等),都可以通过这个"插座"来操作ES。数据的传输采用JSON格式,就像是各国人都使用英语交流一样,确保了通信的标准化和简单化。

3. ELK技术栈简介

ELK是一个完整的日志分析解决方案,由三个开源项目组成。想象一下一个完整的大数据处理流水线:

3.1 Elasticsearch(存储和搜索引擎)
  • 就像是一个超大的仓库,负责存储所有收集到的数据
  • 提供强大的搜索和分析能力
  • 作为整个系统的"大脑"
3.2 Logstash(数据收集和处理)
  • 像是一条传送带,负责收集各处的数据
  • 可以从不同的源头收集数据(比如日志文件、数据库、消息队列等)
  • 在传输过程中可以对数据进行清洗和转换,确保数据的质量
3.3 Kibana(可视化平台)
  • 就像是一个智能数据大屏,把复杂的数据变成直观的图表
  • 提供友好的界面来管理和监控ES
  • 可以制作各种数据分析报表,帮助决策

💡 提示:现在这个技术栈通常被称为"Elastic Stack",因为它还包含了Beats(轻量级数据采集器)等其他组件。Beats就像是分布在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 HTML 网页来管理 Markdown 标题序号

文章目录 工具介绍核心优势使用指南基本使用方法注意事项 部分截图完整代码 工具介绍 在日常的文档编写和博客创作中,Markdown因其简洁的语法和良好的可读性而广受欢迎。然而,当文档结构复杂、标题层级较多时,手动维护标题序号不仅耗时耗力&…

批量将 Markdown 转换为 Word/PDF 等其它格式

在工作当中,我们经常会接触到 Markdown 格式的文档。这是一种非常方便我们做记录,做笔记的一种格式文档。现在很多互联网编辑器都是支持 Markdown 格式的,编辑起文章来更加的方便简介。有时候,我们会碰到需要将 Markdown 格式的文…

剑指Offer(数据结构与算法面试题精讲)C++版——day8

剑指Offer(数据结构与算法面试题精讲)C版——day8 题目一:链表中环的入口节点题目二:两个链表的第1个重合节点题目三:反转链表附录:源码gitee仓库 题目一:链表中环的入口节点 这道题的有如下三个…

【BFT帝国】20250409更新PBFT总结

2411 2411 2411 Zhang G R, Pan F, Mao Y H, et al. Reaching Consensus in the Byzantine Empire: A Comprehensive Review of BFT Consensus Algorithms[J]. ACM COMPUTING SURVEYS, 2024,56(5).出版时间: MAY 2024 索引时间(可被引用): 240412 被引:…

前端用用jsonp的方式解决跨域问题

前端用用jsonp的方式解决跨域问题 前端用用jsonp的方式解决跨域问题 前端用用jsonp的方式解决跨域问题限制与缺点:前端后端测试使用示例 限制与缺点: 不安全、只能使用get方式、后台需要相应jsonp方式的传参 前端 function jsonp(obj) {// 动态生成唯…

MySQL详解最新的官方备份方式Clone Plugin

一、Clone Plugin的动态安装 install plugin clone soname mysql_clone.so;select plugin_name,plugin_status from information_schema.plugins where plugin_name clone; 二、Clone Plugin配置持久化 在 MySQL 配置文件my.cnf中添加以下内容,确保插件在 MySQL …

解决python manage.py shell ModuleNotFoundError: No module named xxx

报错如下&#xff1a; python manage.py shellTraceback (most recent call last):File "/Users/z/Documents/project/c/manage.py", line 10, in <module>execute_from_command_line(sys.argv)File "/Users/z/.virtualenvs/c/lib/python3.12/site-packa…

鸿蒙NEXT开发资源工具类(ArkTs)

import { AppUtil } from ./AppUtil; import { StrUtil } from ./StrUtil; import { resourceManager } from kit.LocalizationKit;/*** 资源工具类。* 提供访问应用资源的能力&#xff0c;包括布尔值、数字、字符串等资源的获取。** author 鸿蒙布道师* since 2025/04/08*/ ex…

css使用mix-blend-mode的值difference实现内容和父节点反色

1. 使用场景 往往开发过程中&#xff0c;经常遇到产品说你这个背景图和文字颜色太接近了&#xff0c;能不能适配下背景图&#xff0c;让用户能够看清具体内容是啥。 这么说吧&#xff0c;这种需求场景非常合理&#xff0c;因为你做开发就是要给用户一个交代&#xff0c;给他们…

el-input 中 select 方法使用报错:属性“select”在类型“HTMLElement”上不存在

要解决该错误&#xff0c;需明确指定元素类型为 HTMLInputElement&#xff0c;因为 select() 方法属于输入元素。 步骤解释&#xff1a; 类型断言&#xff1a;使用 as HTMLInputElement 将元素类型断言为输入元素。 可选链操作符&#xff1a;保持 ?. 避免元素为 null 时出错…

Mybatis Plus与SpringBoot的集成

Mybatis Plus与SpringBoot的集成 1.引入Maven 依赖2.配置application.yml文件3.创建实体类4.分页插件5.逻辑删除功能6.忽略特定字段7.自动填充 1.引入Maven 依赖 提前创建好一个SpringBoot项目&#xff0c;然后在项目中引入MyBatis Plus依赖 <dependency><groupId&g…

大数据学习(104)-clickhouse与hdfs

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…

【简历全景认知2】电子化时代对简历形式的降维打击:从A4纸到ATS的生存游戏

一、当简历遇上数字洪流:传统形式的式微 在1990年代,一份排版精美的纸质简历还能让HR眼前一亮;但今天,超过75%的 Fortune 500 企业使用ATS(Applicant Tracking System)进行初筛,未优化的简历可能在5秒内就会沦为数字废土。这种变迁本质上符合「技术接纳生命周期」理论—…

esp32cam -> 服务器 | 手机 -> 服务器 直接服务器传输图片

服务器先下载python &#xff1a; 一、Python环境搭建&#xff08;CentOS/Ubuntu通用&#xff09; 一条一条执行 安装基础依赖 # CentOS sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel # Ubuntu sudo apt update && sudo apt install b…

SeaTunnel系列之:Apache SeaTunnel编译和安装

Apache SeaTunnel编译 Prepare编译克隆源代码本地安装子项目从源代码构建 SeaTunnel构建子模块安装 JetBrains IDEA Scala 插件安装 JetBrains IDEA Lombok 插件代码风格运行简单示例不仅如此 安装下载 SeaTunnel 发布包下载连接器插件从源代码构建 SeaTunnel 运行 SeaTunnel 在…

JavaScript/React中,...(三个连续的点)被称为 扩展运算符(Spread Operator) 或 剩余运算符(Rest Operator)

const processOrder (order) > {const tax order.total * 0.1;const finalAmount order.total tax;return { ...order, tax, finalAmount }; }; 解释一下&#xff0c;特别&#xff1a;...?在JavaScript/React中&#xff0c;...&#xff08;三个连续的点&#xff09;被称…

FRP的proxies只是建立通道,相当于建立与服务器沟通的不同通道而不是直接将路由器与服务器云端沟通

没有更好的办法了吗&#xff0c;我看frpc.toml的里面可以设置两个proxies那我esp32的监听端口设置在frpc.toml里面它不也能跟云服务器建立联系吗&#xff0c;比如远程与本地端口都配置为5112那云服务器接收到的5112访问会以frp配置的本地端口5112转发到frp客户端的路由器&#…

#在docker中启动mysql之类的容器时,没有挂载的数据...在后期怎么把数据导出外部

如果要导出 Docker 容器内的 整个目录&#xff08;包含所有文件及子目录&#xff09;&#xff0c;可以使用以下几种方法&#xff1a; 方法 1&#xff1a;使用 docker cp 直接复制目录到宿主机 适用场景&#xff1a;容器正在运行或已停止&#xff08;但未删除&#xff09;。 命…

Java的JDK、JRE、JVM关系与作用

Java的JDK、JRE、JVM关系与作用 java中的JDK、JRE和JVM是三个核心组件&#xff0c;各自承担不同角色&#xff0c;且存在层级依赖关系 1. JVM&#xff08;Java Virtual Machine&#xff0c;Java虚拟机&#xff09; 是什么&#xff1a; JVM是虚拟的计算机&#xff0c;能够执行…

C++学习之套接字并发服务器

目录 1.昨天套接字服务器的弊端 2.如何通过多进程方式实现服务器并发 3.多进程服务器-1 4.多进程服务器-2 5.多进程版程序-回收子进程被信号中断的处理 6.多线程版TCP服务处理思路 7.多线程并发服务器编写 8.为什么不能把文件描述符地址传到子线程中 9.多线程程序测试 …