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

ElasticSearch集群架構(gòu)原理

這篇具有很好參考價值的文章主要介紹了ElasticSearch集群架構(gòu)原理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一. ?Elasticsearch架構(gòu)原理

1、Elasticsearch的節(jié)點類型

在Elasticsearch主要分成兩類節(jié)點,一類是Master(主節(jié)點),一類是DataNode(數(shù)據(jù)節(jié)點),還有一種叫客戶端節(jié)點。

在配置文件中體現(xiàn)為:

????????主節(jié)點選舉資格:node.master:true

????????數(shù)據(jù)節(jié)點選舉資格: node.data: true

默認兩個配置都為true,代表都有被選舉為主節(jié)點和數(shù)據(jù)節(jié)點的資格。

1.1 ?Master節(jié)點

????????在Elasticsearch啟動時,會選舉出來一個Master節(jié)點。當(dāng)某個節(jié)點啟動后,然后使用Zen Discovery機制找到集群中的其他節(jié)點,并建立連接。(ES啟動時,也可以在elasticsearch.yml配置中指定當(dāng)前節(jié)點是什么類型)

????????發(fā)現(xiàn)機制前提每個節(jié)點的集群名字要一樣,這就是為什么集群名要一樣。

Master節(jié)點主要負責(zé):

  • 管理索引(創(chuàng)建索引、刪除索引)、分配分片:操作索引,決定哪些分片分配給相關(guān)的節(jié)點
  • 維護元數(shù)據(jù)(就是mapping等信息)
  • 管理集群節(jié)點狀態(tài)
  • 不負責(zé)數(shù)據(jù)寫入和查詢,比較輕量級

一個Elasticsearch集群中,只有一個Master節(jié)點。在生產(chǎn)環(huán)境中,內(nèi)存可以相對小一點,但機器要穩(wěn)定。(索引的操作)

1.2 ?DataNode節(jié)點

????????在Elasticsearch集群中,會有N個DataNode節(jié)點。DataNode節(jié)點主要負責(zé):文檔寫入、文檔檢索,大部分Elasticsearch的壓力都在DataNode節(jié)點上。所以在生產(chǎn)環(huán)境中,內(nèi)存最好配置大一些(4個G)。(文檔的操作)

1.3 客戶端節(jié)點

????????當(dāng)主節(jié)點和數(shù)據(jù)節(jié)點配置都設(shè)置為false的時候,代表該節(jié)點即沒有選舉主節(jié)點的資格,也沒有選舉數(shù)據(jù)節(jié)點的資格,該節(jié)點只能處理路由請求,處理搜索,分發(fā)索引操作等,從本質(zhì)上來說該客戶節(jié)點表現(xiàn)為智能負載平衡器。

????????獨立的客戶端節(jié)點在一個比較大的集群中是非常有用的,他協(xié)調(diào)主節(jié)點和數(shù)據(jù)節(jié)點,客戶端節(jié)點加入集群可以得到集群的狀態(tài),根據(jù)集群的狀態(tài)可以直接路由請求。

經(jīng)驗:

????????在生產(chǎn)架構(gòu)中,至少要三臺機器有可以競選主節(jié)點的資格。在實際生產(chǎn)環(huán)境中,可能節(jié)點的功能會比較細化??赡軙袔着_指定為主節(jié)點,有另外幾臺專門作為數(shù)據(jù)節(jié)點。一般建議至少三臺,都設(shè)為true或保持默認

????????在一個生產(chǎn)集群中我們可以對這些節(jié)點的職責(zé)進行劃分,建議集群中設(shè)置3臺以上的節(jié)點作為master節(jié)點,這些節(jié)點只負責(zé)成為主節(jié)點,維護整個集群的狀態(tài)。再根據(jù)數(shù)據(jù)量設(shè)置一批data節(jié)點,這些節(jié)點只負責(zé)存儲數(shù)據(jù),后期提供查詢索引的服務(wù),這樣的話如果用戶請求比較頻繁,這些節(jié)點的壓力也會比較大,所以在集群中建議再設(shè)置一批client節(jié)點(node.master: false node.data: false),這些節(jié)點只負責(zé)處理用戶請求,實現(xiàn)請求轉(zhuǎn)發(fā),負載均衡等功能。

二 、分片和副本機制

1 、分片(Shard)

?????????Elasticsearch是一個分布式的搜索引擎,索引的數(shù)據(jù)也是分成若干部分,分布在不同的服務(wù)器節(jié)點中。分布在不同服務(wù)器節(jié)點中的索引數(shù)據(jù),就是分片(Shard)。Elasticsearch會自動管理分片,如果發(fā)現(xiàn)分片分布不均衡,就會自動遷移。

????????一個索引(index)由多個shard(分片)組成,而分片是分布在不同的服務(wù)器上的

2、副本

????????為了對Elasticsearch的分片進行容錯,假設(shè)某個節(jié)點不可用,會導(dǎo)致整個索引庫都將不可用。所以,需要對分片進行副本容錯。每一個分片都會有對應(yīng)的副本。

????????在Elasticsearch中,默認(7.x版本)創(chuàng)建的索引為1個分片、每個分片有1個主分片和1個副本分片。但是都是可以設(shè)置的,如果指定了多個主分片,則寫入數(shù)據(jù)的時候可能就寫入其中一個分片中,然后同步備份到若干個副分片中。如果幾個主分片分布于不同的節(jié)點,則同一個索引庫的數(shù)據(jù)自然而然就分布在不同的節(jié)點中。

????????每個分片都會有一個Primary Shard(主分片)和若干個Replica Shard(副本分片),Primary Shard和Replica Shard不在同一個節(jié)點上。如下面的0、1、2,有一個主分片,兩個副本分片。

(在創(chuàng)建索引庫的時候可以通過settings來指定主分片分數(shù)量以及每個主分片有幾個副分片)

ElasticSearch集群架構(gòu)原理

(這里表示job_idx_shar這個索引庫有三個主分片,每個主分片又會有兩個副分片。粗的是主分片,細框是副分片)

????????如果node-1掛掉了,則0、1主分片就掛掉了,那就會在node-2和node-3中的兩個0副分片中選一個作為0的主分片;兩個1副分片中選一個作為1的主分片。這樣還是會有一個套主分片和一套副分片,會比較安全。

3、指定分片、副本數(shù)量

#?創(chuàng)建指定分片數(shù)量、副本數(shù)量的索引
PUT /job_idx_shard_temp
{
    "mappings":{
        "properties":{
            "id":{"type":"long","store":true},
            "area":{"type":"keyword","store":true},
            "exp":{"type":"keyword","store":true},
            "edu":{"type":"keyword","store":true},
            "salary":{"type":"keyword","store":true},
            "job_type":{"type":"keyword","store":true},
            "cmp":{"type":"keyword","store":true},
            "pv":{"type":"keyword","store":true},
            "title":{"type":"text","store":true},
            "jd":{"type":"text"}

        }
    },
    # 如下配置會有9個分片,三個主分片六個副本分片
    "settings":{
        # 指定三個主分片
        "number_of_shards":3,
        # 指定一個主分片會有兩個副本分片
        "number_of_replicas":2
    }
}

#?查看分片、主分片、副本分片
GET?/_cat/indices?v

三、Elasticsearch重要工作流程

1、Elasticsearch文檔寫入原理

ElasticSearch集群架構(gòu)原理

? ? ? ? 1)選擇任意一個DataNode發(fā)送請求,例如:node2。此時,node2就成為一個coordinating node(協(xié)調(diào)節(jié)點)

? ? ? ? 2)計算得到文檔要寫入的分片,至于寫入哪個分片中是由下面算法計算出來的,routing可以指定,默認是文檔的id,算法的結(jié)果必定是在分片數(shù)量之間。

shard = hash(routing) % number_of_primary_shards

? ? ? ? 3)coordinating node會進行路由,將請求轉(zhuǎn)發(fā)給對應(yīng)的primary shard所在的DataNode(假設(shè)primary shard在node1、replica shard在node2)

? ? ? ? 4)node1節(jié)點上的Primary Shard處理請求,寫入數(shù)據(jù)到索引庫中,并將數(shù)據(jù)同步到Replica shard

? ? ? ? 5)Primary Shard和Replica Shard都保存好了文檔,返回client

2、Elasticsearch檢索原理

ElasticSearch集群架構(gòu)原理

? ? ? ? 1)client發(fā)起查詢請求,某個DataNode接收到請求,該DataNode就會成為協(xié)調(diào)節(jié)點(Coordinating Node)。

? ? ? ? 2)協(xié)調(diào)節(jié)點(Coordinating Node)將查詢請求廣播到每一個數(shù)據(jù)節(jié)點,這些數(shù)據(jù)節(jié)點的分片會處理該查詢請求。

? ? ? ? ?3)每個分片進行數(shù)據(jù)查詢,將符合條件的數(shù)據(jù)放在一個優(yōu)先隊列中,并將這些數(shù)據(jù)的文檔ID、節(jié)點信息、分片信息返回給協(xié)調(diào)節(jié)點;協(xié)調(diào)節(jié)點將所有的結(jié)果進行匯總,并進行全局排序。(協(xié)調(diào)匯總,從這里也能看出數(shù)據(jù)節(jié)點壓力大一些,要多分配一些內(nèi)存)

? ? ? ? 4)協(xié)調(diào)節(jié)點向包含這些文檔ID的分片發(fā)送get請求,對應(yīng)的分片將文檔數(shù)據(jù)返回給協(xié)調(diào)節(jié)點,最后協(xié)調(diào)節(jié)點將數(shù)據(jù)返回給客戶端

? ? ? ? 由此可見,分片越多,查詢的效率肯定會有一定影響的。

四、Elasticsearch準(zhǔn)實時索引實現(xiàn)

1、寫入實現(xiàn)

ElasticSearch集群架構(gòu)原理

? ? ? ? 1)溢寫到文件系統(tǒng)緩存

????????當(dāng)數(shù)據(jù)寫入到ES分片時,會首先寫入到內(nèi)存中,然后通過內(nèi)存的buffer生成一個segment,并刷到文件系統(tǒng)緩存中,數(shù)據(jù)可以被檢索(注意不是直接刷到磁盤)

ES中默認1秒,refresh一次

????????2)寫translog保障容錯

?????????在寫入到內(nèi)存中的同時,也會記錄translog日志,在refresh期間出現(xiàn)異常,會根據(jù)translog來進行數(shù)據(jù)恢復(fù)

????????等到文件系統(tǒng)緩存中的segment數(shù)據(jù)都刷到磁盤中,清空translog文件

????????3)flush到磁盤

????????ES默認每隔30分鐘會將文件系統(tǒng)緩存的數(shù)據(jù)刷入到磁盤

? ? ? ? 4)segment合并

????????Segment太多時,ES定期會將多個segment合并成為大的segment,減少索引查詢時IO開銷,此階段ES會真正的物理刪除(之前執(zhí)行過的delete的數(shù)據(jù))

總結(jié):

? ? ? ? 1、實時搜索與準(zhǔn)實時搜索

????????實時搜索:剛剛加進去的數(shù)據(jù)就能被查詢出來。

????????ES準(zhǔn)實時:數(shù)據(jù)先被寫入內(nèi)存里面去,(內(nèi)存中的數(shù)據(jù)能不能被讀取呢?es底層基于lucence,lucence是不能夠直讀取內(nèi)存中的數(shù)據(jù)的,只能讀取磁盤,相對速度較慢)。寫入到內(nèi)存中后這個時候是不能被查詢的,每隔一秒中會刷新到文件緩存系統(tǒng)中去(不是磁盤,屬于高速緩沖區(qū),在里面讀數(shù)據(jù)是很快的),這里面查詢速度是很快的,那就意味著每一秒中都會被查詢到的,所以說是準(zhǔn)實時的,然后每隔三十分鐘刷新到磁盤中去。solr就不行,實時性差。

? ? ? ? 2、面試點:如果中間(內(nèi)存刷文件緩存系統(tǒng)/文件緩存系統(tǒng)刷磁盤)宕機了怎么辦?

????????translog,如果中間宕機了,會根據(jù)translog這個日志進行數(shù)據(jù)恢復(fù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-428727.html

到了這里,關(guān)于ElasticSearch集群架構(gòu)原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • ElasticSearch架構(gòu)介紹及原理解析_elasticsearch+sqlserver架構(gòu)

    ElasticSearch架構(gòu)介紹及原理解析_elasticsearch+sqlserver架構(gòu)

    - 索引是一個包含多個文檔的數(shù)據(jù)庫,文檔是可搜索的數(shù)據(jù)單元。 ? ?- 索引可以被看作是關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)庫。 ? ?- 每個索引由多個分片(Shards)組成,分片是數(shù)據(jù)的物理副本。 ????????4. **分片(Shards)**: ? ?- 分片是索引的物理分割,用于提高數(shù)據(jù)的可擴展性和

    2024年04月17日
    瀏覽(34)
  • ElasticSearch集群原理

    ElasticSearch集群原理

    集群內(nèi)的節(jié)點共同承擔(dān)數(shù)據(jù)和負載的壓力。 當(dāng)有節(jié)點加入或者移出集群時,集群會重新平均分配所有的數(shù)據(jù)。 主節(jié)點負責(zé)集群內(nèi)的所有變更(如增加、刪除節(jié)點,增加、刪除索引等) 主節(jié)點并不需要涉及到文檔級別的變更和搜索 任何節(jié)點都可以成為主節(jié)點 每個節(jié)點都知道

    2023年04月08日
    瀏覽(20)
  • 【ElasticSearch系列-06】Es集群架構(gòu)的搭建以及集群的核心概念

    【ElasticSearch系列-06】Es集群架構(gòu)的搭建以及集群的核心概念

    ElasticSearch系列整體欄目 內(nèi)容 鏈接地址 【一】ElasticSearch下載和安裝 https://zhenghuisheng.blog.csdn.net/article/details/129260827 【二】ElasticSearch概念和基本操作 https://blog.csdn.net/zhenghuishengq/article/details/134121631 【三】ElasticSearch的高級查詢Query DSL https://blog.csdn.net/zhenghuishengq/article/details/1

    2024年02月04日
    瀏覽(27)
  • Elasticsearch架構(gòu)原理快速了解

    Elasticsearch架構(gòu)原理快速了解

    目錄 一、ES的簡單了解 (一)直面Elasticsearch (二)Elasticsearch和關(guān)系型數(shù)據(jù)庫的對比 二、基本概念回顧 (一)索引、文檔、字段的概念 (二)映射 (三)集群和節(jié)點 (四)分片和副分片 (五)DSL 三、架構(gòu)原理 (一)節(jié)點職責(zé) (二)主分片和副分片 (三)路由計算 Rou

    2024年02月08日
    瀏覽(14)
  • Elasticsearch架構(gòu)原理

    Elasticsearch架構(gòu)原理

    1、Elasticsearch的節(jié)點類型 在Elasticsearch主要分成兩類節(jié)點,一類是Master,一類是DataNode。 1.1 Master節(jié)點 在Elasticsearch啟動時,會選舉出來一個Master節(jié)點。當(dāng)某個節(jié)點啟動后,然后使用Zen Discovery機制找到集群中的其他節(jié)點,建立連接,并從候選主節(jié)點中選舉出一個主節(jié)點。 Master節(jié)

    2024年04月10日
    瀏覽(29)
  • 【大數(shù)據(jù)入門核心技術(shù)-ElasticSearch】(二)ElasticSearch整體架構(gòu)和重要工作原理

    目錄 一、整體架構(gòu)圖 二、重要工作原理 1、文檔寫入原理 2、文檔檢索原理

    2024年02月05日
    瀏覽(29)
  • k8s集群部署elasticsearch集群和elasticsearch集群設(shè)置用戶密碼

    目錄 一、背景: 二、部署elasticsearch集群: 1、部署elasticsearch集群: 2、驗證elasticsearch集群是否正常: ?三、部署elasticsearch集群并設(shè)置用戶密碼 1、生產(chǎn)elastic集群所需的證書: 2、重新建構(gòu)elasticsearch鏡像: 3、部署elasticsearch集群: 4、設(shè)置elasticsearch集群的密碼: 5、測試驗證

    2024年04月13日
    瀏覽(22)
  • 【Elasticsearch】Elasticsearch集群搭建詳細手冊

    1.1.資源準(zhǔn)備 服務(wù)器 192.168.X.26 192.168.X.25 192.168.X.24 安裝包 elasticsearch-6.8.10.tar.gz 防火墻 所有服務(wù)器均開通9200,9300端口 1.2.安裝組件 第一步:創(chuàng)建es安裝目錄 第二步:上傳安裝包到soft目錄下 第三步:解壓安裝包 注意:當(dāng)前步驟每臺服務(wù)器均相同?。?! 1.3.修改配置 節(jié)點1、節(jié)點

    2024年01月22日
    瀏覽(22)
  • 【elasticsearch】elasticsearch7.x集群搭建

    【elasticsearch】elasticsearch7.x集群搭建

    目錄 一、服務(wù)器情況 二、安裝前準(zhǔn)備 1、下載es 2、配置服務(wù)器免密登錄 3、升級jdk 三、安裝es集群 (一)master服務(wù)器的操作 1、將es上傳到Linux并解壓 2、創(chuàng)建數(shù)據(jù)、日志存儲文件夾 3、配置config/elasticsearch.yml 4、配置jvm 5、創(chuàng)建es用戶 6、賦權(quán)限 7、修改配置文件 8、啟動服務(wù) 9、啟

    2023年04月09日
    瀏覽(23)
  • Elasticsearch:如何從 Elasticsearch 集群中刪除數(shù)據(jù)節(jié)點

    Elasticsearch 集群通常包含多個節(jié)點,并且可能存在需要從集群中刪除節(jié)點的情況。 應(yīng)謹慎執(zhí)行此過程,以確保數(shù)據(jù)的完整性和可用性。 在本文中,我們將引導(dǎo)你完成從 Elasticsearch 集群安全刪除節(jié)點的步驟。 在嘗試從 Elasticsearch 集群中刪除節(jié)點之前,確保集群處于健康狀態(tài)(

    2024年02月07日
    瀏覽(32)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包