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

ElasticSearch 數(shù)據(jù)分片

這篇具有很好參考價(jià)值的文章主要介紹了ElasticSearch 數(shù)據(jù)分片。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、ElasticSearch 分片

ElasticSearch集群中有許多個(gè)節(jié)點(diǎn)(Node),每一個(gè)節(jié)點(diǎn)實(shí)例就是一個(gè)實(shí)例;數(shù)據(jù)分布在分片之間。集群的容量和性能主要取決于分片如何在節(jié)點(diǎn)上如何分配。將數(shù)據(jù)分片是為了提高可處理的容量和易于進(jìn)行水平擴(kuò)展,為分片做副本是為了提高集群的穩(wěn)定性和提高并發(fā)量。每個(gè)分片之間是相互獨(dú)立的,對(duì)于搜索request 每個(gè)分片都會(huì)執(zhí)行。

二、分片

分片好比在 Mysql中 的分表,將數(shù)據(jù)分布在多張表中。

主分片(shard):主分片是數(shù)據(jù)的容器,文檔保存在主分片內(nèi),主分片又被分配到集群內(nèi)的各個(gè)節(jié)點(diǎn)里。每個(gè)shard都是一個(gè)lucene的索引文件(index)。

副本分片(replica):副本是對(duì)主分片的Copy,同步存儲(chǔ)主分片的數(shù)據(jù)內(nèi)容。為了達(dá)到高可用,當(dāng)分片所在的物理節(jié)點(diǎn)宕機(jī),ES可以使用副本機(jī)制進(jìn)行恢復(fù),從而避免數(shù)據(jù)丟失.。一個(gè)分片只能存放 Integer.MAX_VALUE - 128 = 2,147,483,519個(gè)docs。

※:并不是副分片越多越好,因?yàn)槊總€(gè)分片都相當(dāng)于一個(gè)索引文件,會(huì)占用一定的文件句柄、內(nèi)存及cpu,并且分片間的數(shù)據(jù)同步也會(huì)占用一定的網(wǎng)絡(luò)帶寬。副本是乘法,越多消耗越大,但也越保險(xiǎn)。分片是除法,分片越多,單分片數(shù)據(jù)就越少也越分散。

※:在主分片掛掉后,會(huì)從副本分片中選舉一個(gè)升級(jí)為主分片,當(dāng)副本升級(jí)為主分片后,由于少了一個(gè)副本分片,所以集群狀態(tài)會(huì)從green改變?yōu)閥ellow,但是此時(shí)集群仍然可用。在一個(gè)集群中有一個(gè)分片的主分片和副本分片都掛掉后,集群狀態(tài)會(huì)由yellow改變r(jià)ed,集群狀態(tài)為red時(shí)集群不可正常使用。

※:由于elasticSearch 通過路由定位公式找到每一個(gè)數(shù)據(jù)對(duì)應(yīng)的具體分片的。

shard = hash(routing)%number_of_primary_shards

routing的默認(rèn)值就是這個(gè)document的_id(也可以手動(dòng)指定),這也說明了主分片數(shù)一旦定下來就不能再改變的原因,因?yàn)榉制瑪?shù)改變后,所有之前的路由值都會(huì)變得無效,之前的文檔數(shù)據(jù)也就找不到了。

三、節(jié)點(diǎn)

Master節(jié)點(diǎn):職責(zé)是和集群操作相關(guān)的內(nèi)容,如創(chuàng)建或刪除索引,跟蹤哪些節(jié)點(diǎn)是集群的一部分,并決定哪些分片分配給相關(guān)的節(jié)點(diǎn),穩(wěn)定的主節(jié)點(diǎn)對(duì)集群的健康是非常重要的。

節(jié)點(diǎn)對(duì)等:每個(gè)節(jié)點(diǎn)都能接收請(qǐng)求,每個(gè)節(jié)點(diǎn)接收到請(qǐng)求后都能把該請(qǐng)求路由到有相關(guān)數(shù)據(jù)的其他節(jié)點(diǎn)上,接收原始請(qǐng)求的節(jié)點(diǎn)負(fù)責(zé)采集數(shù)據(jù)并返回給客戶端。

協(xié)調(diào)節(jié)點(diǎn):一個(gè)寫請(qǐng)求被發(fā)送到集群的一個(gè)節(jié)點(diǎn)后該節(jié)點(diǎn)稱為協(xié)調(diào)節(jié)點(diǎn)。其職責(zé)是廣播查詢請(qǐng)求到所有相關(guān)分片并將它們的響應(yīng)整合成全局排序后的結(jié)果集合后返回給客戶端。

※:增加和刪除節(jié)點(diǎn),會(huì)自動(dòng)平衡 shard 在剩余節(jié)點(diǎn)中的分配。

※:如果集群中只有一個(gè)節(jié)點(diǎn),就沒有地方分配副本,此時(shí)副本的狀態(tài)就是unassigned(未分配的分片),也就是說主副分片不能存在于同一臺(tái)機(jī)器上。

※:一旦集群中的節(jié)點(diǎn)發(fā)生變化,它們就會(huì)協(xié)商誰將成為主節(jié)點(diǎn),ES中所有節(jié)點(diǎn)都有機(jī)會(huì)成為主節(jié)點(diǎn),可以通過設(shè)置主節(jié)點(diǎn)的最小數(shù)量防止腦裂(split brain)問題,一般的規(guī)則是集群節(jié)點(diǎn)數(shù)除以2(向下取整)再加一。

四、查詢和寫入過程

查詢:當(dāng)協(xié)調(diào)節(jié)點(diǎn)收到查詢 request 時(shí),先在本地創(chuàng)建一個(gè)大小為 from + size 的空優(yōu)先隊(duì)列,然后將請(qǐng)求廣播到索引的每個(gè)分片中,分片在本地執(zhí)行查詢并添加結(jié)果到本地有序優(yōu)先隊(duì)列中后返回給協(xié)調(diào)節(jié)點(diǎn),協(xié)調(diào)節(jié)點(diǎn)將分片級(jí)的結(jié)果合并到自己的有序優(yōu)先隊(duì)列里并返回。

寫入:通過 routing 以及協(xié)調(diào)節(jié)點(diǎn)確定寫到具體的某個(gè)主分片上后,并發(fā)的向所有副本同步數(shù)據(jù)(樂觀鎖),所有副本同步完成后即為成功(類似 kafka 的ACK應(yīng)答機(jī)制)

※:ElasticSearch 通過增加 translog日志保證數(shù)據(jù)存儲(chǔ)可靠性。

當(dāng)新增了一個(gè)文檔數(shù)據(jù)后首先被寫入內(nèi)存中,如果此時(shí)宕機(jī)數(shù)據(jù)將會(huì)丟失,為此新增 translog 日志記錄數(shù)據(jù),translog 是追加寫入,因此性能比較好。
通過不斷的執(zhí)行 refresh 操作(操作間隔大約1s),將數(shù)據(jù)以段 (segment) 的形式提交到文件緩存系統(tǒng)中,此時(shí)雖然還真正的落盤但是可以正常打開并讀取文件。由于 refresh 操作會(huì)產(chǎn)生大量很小的段(segment),ES會(huì)對(duì)符合條件的segment進(jìn)行合并操作,減少lucene中的segment個(gè)數(shù),提高查詢速度,降低負(fù)載。
隨著 每30分鐘或當(dāng)translog達(dá)到一定大小,ES會(huì)觸發(fā)一次flush操作,將所有內(nèi)存中的 segment fsync到磁盤,數(shù)據(jù)就完成了持久化。

ElasticSearch 數(shù)據(jù)分片,elasticsearch,大數(shù)據(jù),搜索引擎
標(biāo)題

Tip: 為什么不直接刷到磁盤,而是寫入文件緩存系統(tǒng)?

每30分鐘或當(dāng)translog達(dá)到一定大小(由index.translog.flush_threshold_size控制,默認(rèn)512mb),ES會(huì)觸發(fā)一次flush操作

fsync 操作代價(jià)很大,如果每次索引一個(gè)文檔都去執(zhí)行一次的話會(huì)造成很大的性能問題,但是這里新segment會(huì)被先寫入到文件系統(tǒng)緩存,這一步代價(jià)會(huì)比較低文章來源地址http://www.zghlxwxcb.cn/news/detail-779552.html

到了這里,關(guān)于ElasticSearch 數(shù)據(jù)分片的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

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

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

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

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

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

    2023年04月09日
    瀏覽(25)
  • 分布式搜索引擎ElasticSearch——深入elasticSearch

    分布式搜索引擎ElasticSearch——深入elasticSearch

    聚合的分類 DSL實(shí)現(xiàn)Bucket聚合 DSL實(shí)現(xiàn)Metric聚合 RestAPI實(shí)現(xiàn)聚合 https://github.com/medcl/elasticsearch-analysis-pinyin DSL實(shí)現(xiàn)自動(dòng)補(bǔ)全查詢 Completion Suggester 修改酒店索引庫(kù)數(shù)據(jù)結(jié)構(gòu) RestAPI實(shí)現(xiàn)自動(dòng)補(bǔ)全查詢 實(shí)現(xiàn)酒店搜索頁面輸入框的自動(dòng)補(bǔ)全 數(shù)據(jù)同步思路分析 利用MQ實(shí)現(xiàn)mysql與elasticsearch數(shù)

    2024年01月17日
    瀏覽(55)
  • Elasticsearch 搜索引擎

    Elasticsearch 搜索引擎

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

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

    Elasticsearch全文搜索引擎 Elasticsearch簡(jiǎn)介 windows平臺(tái)下安裝ES 學(xué)習(xí)ES的預(yù)備知識(shí) ES索引操作 ES文檔操作 ES高級(jí)查詢 Golang操作ES起步 Golang操作ES索引 Golang操作ES文檔 Golang ES高級(jí)查詢 Gin集成ES

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

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

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

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

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

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

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

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

    2024年02月05日
    瀏覽(36)
  • 【ElasticSearch】深入了解 ElasticSearch:開源搜索引擎的力量

    【ElasticSearch】深入了解 ElasticSearch:開源搜索引擎的力量

    在信息時(shí)代,數(shù)據(jù)的增長(zhǎng)速度之快讓我們迅速感受到了信息爆炸的挑戰(zhàn)。在這個(gè)背景下,搜索引擎成為了我們處理海量數(shù)據(jù)的得力工具之一。而 ElasticSearch 作為一款強(qiáng)大的開源搜索引擎,不僅能夠高效地存儲(chǔ)和檢索數(shù)據(jù),還在日志分析、實(shí)時(shí)監(jiān)控等領(lǐng)域展現(xiàn)了其卓越的性能。

    2024年02月08日
    瀏覽(26)
  • Elasticsearch:什么是搜索引擎?

    Elasticsearch:什么是搜索引擎?

    搜索引擎是一種軟件程序或系統(tǒng),旨在幫助用戶查找存儲(chǔ)在互聯(lián)網(wǎng)或特定數(shù)據(jù)庫(kù)中的信息。 搜索引擎的工作原理是對(duì)各種來源的內(nèi)容進(jìn)行索引和編目,然后根據(jù)用戶的搜索查詢向用戶提供相關(guān)結(jié)果列表。 搜索引擎對(duì)于希望快速有效地查找特定信息的用戶來說是有用的工具。

    2024年02月21日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包