【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.pswp.cn/news/900827.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900827.shtml
英文地址,請注明出處:http://en.pswp.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.多線程程序測試 …