国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ElasticSearch搜索引擎:數(shù)據(jù)的寫入流程

這篇具有很好參考價值的文章主要介紹了ElasticSearch搜索引擎:數(shù)據(jù)的寫入流程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、ElasticSearch 寫數(shù)據(jù)的總體流程:

ElasticSearch搜索引擎:數(shù)據(jù)的寫入流程

(1)ES 客戶端選擇一個節(jié)點 node 發(fā)送請求過去,這個節(jié)點就是協(xié)調(diào)節(jié)點 coordinating node?

(2)協(xié)調(diào)節(jié)點對 document 進行路由,通過 hash 算法計算出數(shù)據(jù)應(yīng)該落在哪個分片?shard 上,然后根據(jù)節(jié)點上維護的 shard 信息,將請求轉(zhuǎn)發(fā)到對應(yīng)的實際處理節(jié)點node上

shard = hash(document_id) % (num_of_primary_shards),

(3)實際的節(jié)點上的?primary shard 主分片處理請求,然后將數(shù)據(jù)同步到副本節(jié)點?replica node?

(4)coordinating node 等到?primary node 和所有 replica node 都執(zhí)行成功之后,就返回響應(yīng)結(jié)果給客戶端。

二、ES 的主分片寫數(shù)據(jù)的詳細流程:

ElasticSearch搜索引擎:數(shù)據(jù)的寫入流程

1、refresh 操作:

????????primary shard 主分片先將數(shù)據(jù)寫入 memory buffer,然后定時(默認每隔1s)將?memory buffer 中的數(shù)據(jù)寫入一個新的 segment 文件中,并進入?Filesystem cache(同時清空 memory buffer),這個過程就叫做 refresh;每個 Segment 文件實際上是一些倒排索引的集合, 只有經(jīng)歷了 refresh 操作之后,這些數(shù)據(jù)才能變成可檢索的。

ES 的近實時性:當數(shù)據(jù)存在 memory?buffer 時是搜索不到的,只有數(shù)據(jù)被 refresh 到??Filesystem cache 之后才能被搜索到,而 refresh 是每秒一次,?所以稱 es 是近實時的,或者可以通過手動調(diào)用?es 的 api 觸發(fā)一次 refresh 操作,讓數(shù)據(jù)馬上可以被搜索到;

? ? ? ? ?上文講到的?memory buffer,也稱為 Indexing Buffer,這個區(qū)域默認的內(nèi)存大小是?10% heap size。

2、寫 translog 事務(wù)日志文件:

????????由于?memory?Buffer 和 Filesystem Cache 都是基于內(nèi)存,假設(shè)服務(wù)器宕機,那么數(shù)據(jù)就會丟失,所以 ES 通過 translog 日志文件來保證數(shù)據(jù)的可靠性,在數(shù)據(jù)寫入?memory buffer 的同時,將數(shù)據(jù)寫入 translog 日志文件中,在機器宕機重啟時,es 會從磁盤中讀取 translog 日志文件中最后一個提交點 commit point 之后的數(shù)據(jù),恢復到 memory?buffer 和 Filesystem cache 中去。

ES 數(shù)據(jù)丟失的問題:translog 也是先寫入 Filesystem cache,然后默認每隔 5 秒刷一次到磁盤中,所以默認情況下,可能有 5 秒的數(shù)據(jù)會僅僅停留在?memory?buffer 或者 translog 文件的 Filesystem cache中,而不在磁盤上,如果此時機器宕機,會丟失 5 秒鐘的數(shù)據(jù)。也可以將 translog 設(shè)置成每次寫操作必須是直接 fsync 到磁盤,但是性能會差很多。

3、flush 操作:

????????不斷重復上面的步驟,translog 會變得越來越大,當 translog 文件默認每30分鐘或者閾值超過 512M 時,就會觸發(fā) flush 操作,將 memory buffer 中所有的數(shù)據(jù)寫入新的 Segment 文件中, 并將內(nèi)存中所有的 Segment 文件全部落盤,最后清空?translog 事務(wù)日志。

  • (1)將 memory buffer 中的數(shù)據(jù) refresh 到 Filesystem Cache?中的一個新的 segment 文件中去,然后清空?memory buffer;
  • (2)創(chuàng)建一個新的 commit point(提交點),同時強行將 Filesystem Cache 中目前所有的數(shù)據(jù)都 fsync 到磁盤文件中;
  • (3)刪除舊的?translog 日志文件并創(chuàng)建一個新的?translog 日志文件,此時 flush 操作完成

ES?的 flush 操作主要通過以下幾個參數(shù)控制:文章來源地址http://www.zghlxwxcb.cn/news/detail-413174.html

  • index.translog.flush_threshold_period:每隔多長時間執(zhí)行一次flush,默認30m
  • index.translog.flush_threshold_size:當事務(wù)日志大小到達此預設(shè)值,則執(zhí)行flush,默認512mb
  • index.translog.flush_threshold_ops:當事務(wù)日志累積到多少條數(shù)據(jù)后flush一次。

到了這里,關(guān)于ElasticSearch搜索引擎:數(shù)據(jù)的寫入流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動補全,數(shù)據(jù)同步,ES集群)

    elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動補全,數(shù)據(jù)同步,ES集群)

    **聚合(aggregations)**可以讓我們極其方便的實現(xiàn)對數(shù)據(jù)的統(tǒng)計、分析、運算。例如: 什么品牌的手機最受歡迎? 這些手機的平均價格、最高價格、最低價格? 這些手機每月的銷售情況如何? 實現(xiàn)這些統(tǒng)計功能的比數(shù)據(jù)庫的sql要方便的多,而且查詢速度非常快,可以實現(xiàn)近

    2024年02月08日
    瀏覽(36)
  • 微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動補全 數(shù)據(jù)同步 集群 Sentinel

    微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動補全 數(shù)據(jù)同步 集群 Sentinel

    聚合(aggregations)可以讓我們極其 方便的實現(xiàn)對數(shù)據(jù)的統(tǒng)計、分析、運算 。例如: 什么品牌的手機最受歡迎? 這些手機的平均價格、最高價格、最低價格? 這些手機每月的銷售情況如何? 實現(xiàn)這些 統(tǒng)計功能的比數(shù)據(jù)庫的sql要方便的多,而且查詢速度非常快 ,可以實現(xiàn)近

    2024年02月11日
    瀏覽(28)
  • 《Spring Boot 實戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫,實現(xiàn)Elasticsearch和Solr搜索引擎

    《Spring Boot 實戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫,實現(xiàn)Elasticsearch和Solr搜索引擎

    ?????????關(guān)于搜索引擎 我們很難實現(xiàn) Elasticseach 和 Solr兩大搜索框架的效果;所以本章針對兩大搜索框架,非常詳細地講解 它們的原理和具體使用方法, 首先 介紹什么是搜索引擎 、如何用 MySQL實現(xiàn)簡單的搜索引擎,以及Elasticseach 的 概念和接口類; 然后介紹Elasticseach

    2023年04月09日
    瀏覽(25)
  • ES搜索引擎入門+最佳實踐(九):項目實戰(zhàn)(二)--elasticsearch java api 進行數(shù)據(jù)增刪改查

    ? ? ? ? 本篇是這個系列的最后一篇了,在這之前可以先看看前面的內(nèi)容: ES搜索引擎入門+最佳實踐(一)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實踐(二)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實踐(三)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實踐(四)_flame.liu的博客

    2024年02月12日
    瀏覽(28)
  • 微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動補全 數(shù)據(jù)同步 集群 微服務(wù)保護 Sentinel

    微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動補全 數(shù)據(jù)同步 集群 微服務(wù)保護 Sentinel

    聚合(aggregations)可以讓我們極其 方便的實現(xiàn)對數(shù)據(jù)的統(tǒng)計、分析、運算 。例如: 什么品牌的手機最受歡迎? 這些手機的平均價格、最高價格、最低價格? 這些手機每月的銷售情況如何? 實現(xiàn)這些 統(tǒng)計功能的比數(shù)據(jù)庫的sql要方便的多,而且查詢速度非???,可以實現(xiàn)近

    2024年02月15日
    瀏覽(30)
  • Java SpringBoot API 實現(xiàn)ES(Elasticsearch)搜索引擎的一系列操作(超詳細)(模擬數(shù)據(jù)庫操作)

    Java SpringBoot API 實現(xiàn)ES(Elasticsearch)搜索引擎的一系列操作(超詳細)(模擬數(shù)據(jù)庫操作)

    小編使用的是elasticsearch-7.3.2 基礎(chǔ)說明: 啟動:進入elasticsearch-7.3.2/bin目錄,雙擊elasticsearch.bat進行啟動,當出現(xiàn)一下界面說明,啟動成功。也可以訪問http://localhost:9200/ 啟動ES管理:進入elasticsearch-head-master文件夾,然后進入cmd命令界面,輸入npm?run?start?即可啟動。訪問http

    2024年02月04日
    瀏覽(34)
  • 分布式搜索引擎——elasticsearch搜索功能

    分布式搜索引擎——elasticsearch搜索功能

    Elasticsearch提供了基于JSON的DSL (Domain Specific Language)來定義查詢。常見的查詢類型包括: 查詢所有:查詢出所有數(shù)據(jù),一般測試用。例如:match_all 全文檢索(full text)查詢:利用分詞器對用戶輸入內(nèi)容分詞,然后去倒排索引庫中匹配。例如: match_query multi_match_query 精確查詢:根據(jù)精確詞條

    2024年02月05日
    瀏覽(34)
  • 分布式搜索引擎ElasticSearch——搜索功能

    分布式搜索引擎ElasticSearch——搜索功能

    DSL查詢分類 DSL官方文檔 全文檢索查詢 精確查詢 地理查詢 復合查詢 Function Score Query function score query Boolean Query 排序 分頁 官方文檔 高亮 快速入門 match,term,range,bool查詢 排序和分頁 高亮顯示 就是在前面抽取的解析代碼中進一步添加關(guān)于高亮的解析部分,因為highlight和so

    2024年02月01日
    瀏覽(28)
  • Elasticsearch全文搜索引擎

    Elasticsearch全文搜索引擎 Elasticsearch簡介 windows平臺下安裝ES 學習ES的預備知識 ES索引操作 ES文檔操作 ES高級查詢 Golang操作ES起步 Golang操作ES索引 Golang操作ES文檔 Golang ES高級查詢 Gin集成ES

    2024年02月09日
    瀏覽(21)
  • Elasticsearch 搜索引擎

    Elasticsearch 搜索引擎

    一、創(chuàng)建索引庫 *put* *http://localhost:9200/* *索引庫名稱* PUT http://localhost:9200/xc_course number_of_shards:設(shè)置分片的數(shù)量,在集群中通常設(shè)置多個分片,表示一個索引庫將拆分成多片分別存儲不同 的結(jié)點,提高了ES的處理能力和高可用性,入門程序使用單機環(huán)境,這里設(shè)置為1。 numb

    2024年02月01日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包