久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    Elasticsearch數據庫 | Elasticsearch-7.5.0應用基礎實戰

     新進小設計 2021-07-11

    Elasticsearch 是一個可用于分布式以及符合RESTful 風格的搜索和數據分析引擎。—— Elastic Stack 官網

    0FNnW8.png

    關于Elasticsearch的“愛恨情仇"

    • 或許提起搜索服務器,大部分人都會想起Solr 和 Elasticsearch 甚至以及國產大廠自研等。隨著人工智能和大數據時代的到來,甚至還帶動了一系列的機器引擎的出現,譬如Splunk等。其中Solr 和 Elasticsearch是基于Lucene的搜索服務器。一般Solr是面向的是全文檢索引擎,而Elasticsearch是用于全文搜索、結構化搜索、分析。而對于Splunk機器數據的引擎,可收集、索引和利用所有應用程序、服務器和設備生成的快速移動型計算機數據。可是不論技術如何發展和更替,作為一位程序員,我們要做的不就是即時地維護技術儲備知識庫和實時更新自己的技術緩存,以及實現可擴展性的技術深度樹的增長。
    • 關于Elasticsearch,記得當時接觸到Elasticsearch的名詞的時候,那是2017年的夏天。當時的工作任務是實現一個關于知識庫的系統。當時小伙伴們技術選型主要還是偏向Solr+Lucene來的做,有的甚至說直接使用Mysql數據庫的自帶函數來做。我是在無意中,在網上查詢搜索引擎的技術實戰的時候,看見了一篇對于Elasticsearch應用實戰的應用報告分析,才去查詢了Elasticsearch的相關資料。不過,當時網上大部分對于搜索功能的Demo,大部分還是關于Solr 的比較多。也許在那個時候,大部分的技術概念基本都是偏向于技術長期穩定和文檔資料全,使用程度相對較重的因素。但是,我個人卻留了一個心眼,自己嘗試去實戰Elasticsearch。
    • 第一次,動手實操還是在Windows本機上安裝(22G內存)的。其中,安裝過程相比利用Tomcat+Solr來說,相對較復雜,而且對于本機的內存和功耗占用較重。個開發基本只能說是能運行起來,可穩定性方面,就有點顯得望而卻步的感覺。第二次,動手實戰是在本機搭建了一個虛擬機去實戰(2核8G),可在網絡通信方面,當時選的是網絡橋接方式,也讓我對此覺得很是麻煩。第三次,是自己擁有了自己的阿里云服務器,在上面按照傳統部署方式(相對于Docker部署來說),可無奈個人服務器內存較低(2核4G),修改配置JVM等無法啟動成功,總是拋出GC日志什么的問題,主要還是當時囊中羞澀的問題,甚至一旦運行Elasticsearch服務,其它的應用便無法啟動和 運行。后來,接觸了Docker,于是,有了第四次的Elasticsearch實戰(單節點部署)。第四次,升級了阿里云服務器的配置(2核8G),最終實現了額自己的第一個Elasticsearch服務。甚至,為在后來工作中,動手實戰Elasticsearch分布式集群服務奠定基礎。

    基本概述

    • 似乎從某種意義來說Elasticsearch和MongoDB/Redis/Memcache一樣,是一種Nosql數據庫。是一個接近實時的搜索平臺,從索引這個文檔到這個文檔能夠被搜索到只有一個輕微的延遲,企業應用定位:采用Restful API標準的可擴展和高可用的實時數據分析的全文搜索工具。不過在當時,Elastic Stack只有Elasticsearch、Kibana 和 Logstash用例,還沒有包含Beats等。而且在應用方面,除了來當作ELK分布式日志系統搭建外,更多的是Elasticsearch +Elasticsearch-Head插件在滿足業務場景方面的需求,能夠安全可靠地獲取任何來源、任何格式的數據,然后實時地對數據進行搜索、分析和可視化等。
    • 基本特點:
    1. 可拓展:支持一主多從且擴容簡易,只要cluster.name一致且在同一個網絡中就能自動加入當前集群;本身就是開源軟件,也支持很多開源的第三方插件
    2. 高可用:在一個集群的多個節點中進行分布式存儲,索引支持shards和復制,即使部分節點down掉,也能自動進行數據恢復和主從切換
    3. 采用RestfulAPI標準:通過http接口使用JSON格式進行操作數據
    4. 數據存儲的最小單位是文檔,本質上是一個JSON 文本

    Elasticsearch關鍵詞

    • Node : 節點,單個裝有Elasticsearch服務并且提供故障轉移和實現可擴展的服務器
    • Cluster : 集群,一個Elasticsearch-Cluster集群是有一個Node或者至少2個Node組成的服務器,共同服務和分享Node節點數據的具有負載均衡的功能,甚至基于Zookeeper集群的高可用服務等。
    • Index : 索引,具有相同或者相似特征的Document文檔對象的集合
    • Type : 類型,相同Filed字段的文檔定義一個Type類型,一個Type可以創建多個Index索引
    • Document :文檔,一個Document文檔可以被用作Index索引的基礎信息單元
    • Field : 字段列,Field是Elasticsearch的最小單元,相擋當于數據的某一列
    • Term:由很多的字節組成。一般將Text類型的Field Value分詞之后的每個最小單元叫做Term。
    • Shards :分片,Elasticsearch把Index索引分成若干份,每一個部分就是一個Shard分片
    • Replicas : 復制,每個Inex索引里每個Shard分片的拷貝或者說是數據備份

    Elasticsearch 結構與其它數據庫對比

    • 數據模型上的對比
    databaseType databaseName databaseUnit databaseTable databaseRow databaseColumn
    sql Mysql 數據庫-database 表-table 數據行-row 數據列-column
    Nosql Elasticsearch 索引-index 類型-type 文檔-document 字段列-field
    Nosql Hbase 命名空間-namespace 域/切片-region 數據行-row 數據列-column
    • 使用場景上的對比
    databaseType databaseName databaseStorage databaseTransaction databaseConsistency databaseScalability secondaryIndex fullText
    sql Mysql 行數數據存儲,適用OLTP業務 Innodb引擎支持 strong consistency-強一致性 單機可拓展粒度不高 支持 支持
    Nosql Elasticsearch 索引存儲-任何檢索業務 不支持 支持可配置 水平拓展 支持 支持
    Nosql Hbase 列式數據存儲,介于OLTP和OLAP模型之間 不支持 strong consistency-強一致性 和 time consistency-時序一致性 水平拓展 不支持 不支持

    ps[??注意事項]:

    1. OLTP: OnLine Transaction Processing聯機事務處理過程(OLTP),主要對應傳統的關系型數據庫,基本操作增刪改查,強調事務一致性,比如銀行系統、電商系統。
    2. OLAP:Online Analytical processing 即聯機分析處理過程(OLAP),主要對應倉儲型數據庫,基本讀取數據,做復雜數據分析,側重技術決策支持,提供直觀簡單的結果。

    Elasticsearch原理剖析

    0kfaDA.png

    • Gateway[索引數據的存儲格式]: Elasticsearch用來存儲數據index索引的文件系統,支持多種類型[ Local FileSystem-本地文件系統 Shared FileSystem-分布式文件系統 Hadoop HDFS, Amazon S3 ]
    • Distributed Lucene Directory[底層 API框架]:Elasticsearch底層依賴Lucene框架,每一個Elasticsearch節點服務都會有對應的Lucene框架
    • Major Module[加工處理方式] : 在Lucene上層,Index Module(創建Index模塊)、Search Module(搜索模塊)、Mapping(映射)、River(運行在Elasticsearch集群內部的一個插件,主要用來從外部獲取獲取異構數據,然后在Elasticsearch里創建索引
    • Discovery[Elasticsearch發現機制]:Discovery 是Elasticsearch自動發現節點的機制;Zen是用來實現節點自動發現、Master節點選舉用;Elasticsearch是基于P2P的系統,它首先通過廣播的機制尋找存在的節點,然后再通過多播協議來進行節點間的通信,同時也支持點對點的交互
    • Scripting[Elasticsearch腳本執行功能]:Scripting 是腳本執行功能,有這個功能能很方便對查詢出來的數據進行加工處理
    • Plugins[Elasticsearch插件機制]:Elasticsearch整合第三方的插件的主要實現拓展和整合等,譬如elasticsearch-ik分詞插件、elasticsearch-sql sql插件。
    • Transport[Elasticsearch傳輸機制]: 傳輸模塊支持 Thrift, Memcached , HTTP,默認使用 HTTP 傳輸
    • JMX[Elasticsearch基于Java的管理框架]:Java 的管理框架,用來管理 Elasticsearch 應用
    • RSTful Style API [Elasticsearch的API支持模式]:基于Netty實現的網絡通信,通過RSTful API 和 Elasticsearch 集群進行交互

    數據結構

    0kfG9O.png

    版權聲明:本文為博主原創文章,遵循相關版權協議,如若轉載或者分享請附上原文出處鏈接和鏈接來源。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 久久99热只有频精品6狠狠| 好吊妞人成视频在线观看| 亚洲 制服 丝袜 无码| 国产亚洲999精品AA片在线爽| 日本一卡2卡3卡4卡5卡精品视频 | 久久天堂综合亚洲伊人HD妓女| 亚洲中文字幕无码爆乳APP| 思思久久96热在精品国产| 国产亚洲欧美在线观看三区| 亚洲高清揄拍自拍| 暖暖日本手机免费观看中文| 国产成人亚洲精品| 国产美女被遭强高潮免费一视频| 亚洲乱码无码永久不卡在线| 亚洲情A成黄在线观看动漫尤物| 国产精品 视频一区 二区三区 | 老色鬼久久亚洲AV综合| 精品国产一区av天美传媒| 亚洲AV美女在线播放啊| 国产精品毛片在线完整版SAB| 秋霞A级毛片在线看| 四虎国产精品永久入口| 欧美日韩一区二区综合| 99国产成人综合久久精品| 中文字幕人妻不卡精品| 久久综合亚洲色HEZYO国产| 久久99精品久久水蜜桃| 国产av不卡一区二区| 日韩AV片无码一区二区不卡电影| 国产成人精选视频在线观看不卡| 国内精品自线在拍| 色婷婷久久综合中文久久一本| 国产对白老熟女正在播放| 同桌上课脱裙子让我帮他自慰| 亚洲色在线V中文字幕| 一区二区中文字幕久久| 亚洲AV伊人久久综合密臀性色 | 国产AV巨作丝袜秘书| 中文字幕人妻精品在线| 国产偷国产偷亚洲清高| 永久免费AV无码国产网站|