1. ES02# Elasticsearch術(shù)語(yǔ)與部署架構(gòu)梳理

        共 2599字,需瀏覽 6分鐘

         ·

        2022-04-07 07:34

        ES體系化梳理第二篇,從基本概念和術(shù)語(yǔ)開(kāi)始,走查了集群中的節(jié)點(diǎn)以及其在ES集群中可扮演的角色,最后走查了常見(jiàn)的集群部署架構(gòu)。本文主要內(nèi)容有:

        • 基本概念與術(shù)語(yǔ)
        • 節(jié)點(diǎn)角色與集群狀態(tài)
        • 常用集群部署架構(gòu)
        一、基本概念與術(shù)語(yǔ)


        Document: 是es搜索的最小單位,被序列化成json對(duì)象存入es。

        • 文檔類比關(guān)系數(shù)據(jù)庫(kù)一條記錄

        • 每個(gè)文檔有一個(gè)唯一的ID,類比關(guān)系數(shù)據(jù)庫(kù)主鍵ID

        • json對(duì)象由filed構(gòu)成,filed類比關(guān)系數(shù)據(jù)庫(kù)column

        Index: 索引是文檔的容器,一類文檔的集合,存儲(chǔ)在分片Shard上。

        • 索引類比關(guān)系數(shù)據(jù)庫(kù)的表

        • 索引的Mapping定義文檔字段類型,類比關(guān)系數(shù)據(jù)庫(kù)的schema

        • 索引的Setting定義數(shù)據(jù)在分片上的分布

        節(jié)點(diǎn): ES實(shí)例的java進(jìn)程,節(jié)點(diǎn)名稱在啟動(dòng)時(shí)通過(guò) -Enode.name指定,每個(gè)節(jié)點(diǎn)存儲(chǔ)集群狀態(tài)信息。

        • 集群狀態(tài)包括:所有節(jié)點(diǎn)信息、所有的索引及Mapping和Setting信息、分片路由信息

        • 只有master節(jié)點(diǎn)可以修改集群狀態(tài)信息

        • Data Node:保存分片數(shù)據(jù)的節(jié)點(diǎn)

        • Coordinating Node:負(fù)責(zé)接受客戶端請(qǐng)求并將請(qǐng)求轉(zhuǎn)發(fā)到合適的節(jié)點(diǎn),并負(fù)責(zé)匯總結(jié)果;默認(rèn)情況下每個(gè)節(jié)點(diǎn)都會(huì)啟到Coordinating Node的職責(zé)

        • Hot&Warm Node:由不同配置的Data Node組成,主要為了降低成本,Hot節(jié)點(diǎn)使用高配置,Warm節(jié)點(diǎn)使用低配置

        主分片: 在創(chuàng)建索引時(shí)指定主分片,解決數(shù)據(jù)水平擴(kuò)容問(wèn)題。

        • 類比kafka的分區(qū),一個(gè)分片運(yùn)行的Lucene的實(shí)例
        • 在創(chuàng)建索引的時(shí)候指定,之后修改需要Reindex
        • 分片數(shù)與節(jié)點(diǎn)數(shù)相關(guān),分片數(shù)過(guò)少影響節(jié)點(diǎn)擴(kuò)容,分片數(shù)過(guò)多影響查詢性能
        • 多分片分擔(dān)寫壓力,當(dāng)分片數(shù) > 節(jié)點(diǎn)數(shù),新節(jié)點(diǎn)加入分片會(huì)自動(dòng)分配
        • 分片過(guò)多會(huì)導(dǎo)致潛在性能,查詢需要從多個(gè)分片上檢索數(shù)據(jù),比如:集群總分片控制幾萬(wàn)內(nèi)
        • 日志單個(gè)分片數(shù)據(jù)存儲(chǔ)大小50G內(nèi),搜索類單個(gè)分片存儲(chǔ)20G內(nèi),降低merge/rebalancing耗損資源

        副本: 主分片的備份,解決數(shù)據(jù)高可用問(wèn)題。

        • 類比kafka的副本,副本分片可以動(dòng)態(tài)調(diào)整
        • 增加副本數(shù)除了解決高可用外,可以提高讀取性能,同時(shí)增加存儲(chǔ)成本
        二、節(jié)點(diǎn)角色與集群狀態(tài)

        1.節(jié)點(diǎn)角色

        Node官方文檔:

        https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-node.html

        Elasticsearch7.9通過(guò)node.roles配置節(jié)點(diǎn)角色,在配置文件elasticsearch.yml設(shè)置

        角色選項(xiàng)說(shuō)明
        masternode.roles: [ master ]:擁有選舉權(quán)和被選舉權(quán)
        master, voting_onlynode.roles: [ master, voting_only ]:只有選舉權(quán)沒(méi)有被選舉權(quán)
        datanode.roles: [ data ]:處理與數(shù)據(jù)相關(guān)的操作CRUD、搜索、聚合
        data_contentnode.roles: [ data_content ]:冷熱分層架構(gòu),通用節(jié)點(diǎn),CRUD、搜索、聚合
        data_hotnode.roles: [ data_hot ]:冷熱分層架構(gòu),hot節(jié)點(diǎn)承擔(dān)快速讀寫操作,可以配置為SSD盤
        data_warmnode.roles: [ data_warm ]:冷熱分層架構(gòu),warm節(jié)點(diǎn)索引不定期更新,查詢頻率比熱節(jié)點(diǎn)低,配置低于熱節(jié)點(diǎn)
        data_coldnode.roles: [ data_cold ]:冷熱分層架構(gòu),cold節(jié)點(diǎn)只存只讀索引,低配置節(jié)點(diǎn)
        ingestnode.roles: [ ingest ]:ingest節(jié)點(diǎn)用于對(duì)寫入和查詢的數(shù)據(jù)進(jìn)行預(yù)處理
        Coordinating only nodenode.roles: [ ]:協(xié)調(diào)節(jié)點(diǎn)不承擔(dān)master職責(zé)、不保存數(shù)據(jù)、不預(yù)處理;負(fù)責(zé)接受請(qǐng)求、分發(fā)請(qǐng)求、匯總結(jié)果

        備注:生產(chǎn)環(huán)境建議一個(gè)節(jié)點(diǎn)設(shè)置單一角色,有利于更好的性能和根據(jù)角色定制化配置。

        2.集群狀態(tài)

        衡量集群健康與否的三種狀態(tài):

        Green:主分片與副本正常分配

        Yellow:主分片全部正常分配,有副本分片未正常分配

        Red:有主分片未能正常分配

        查看集群狀況

        139f47f562c7eb461ded92cce5c937b7.webp

        官方API文檔

        //?index?API
        https://www.elastic.co/guide/en/elasticsearch/reference/8.1/indices.html
        //?Get?index?API
        https://www.elastic.co/guide/en/elasticsearch/reference/8.1/indices-get-index.html
        //?cat?API
        https://www.elastic.co/guide/en/elasticsearch/reference/8.1/cat.html

        查詢document總數(shù)

        0c621d5123a8bf3ce69b13614f621eb9.webp

        三、常用集群部署架構(gòu)

        1.各角色配置

        生產(chǎn)環(huán)境架構(gòu)中每個(gè)節(jié)點(diǎn)配置單一職責(zé),具體為Master、Data、Ingest、Coordinate的一個(gè),有利于每個(gè)角色可以使用不同的機(jī)器配置。

        • Master 負(fù)責(zé)集群狀態(tài)信息管理
          • 生產(chǎn)環(huán)境通常配置3臺(tái)
          • 低配置(低CPU核數(shù)、小內(nèi)存、低磁盤)
        • Data節(jié)點(diǎn)負(fù)責(zé)處理與數(shù)據(jù)相關(guān)的操作
          • 高配置(高CPU核數(shù)、大內(nèi)存、SSD盤)
        • Ingest節(jié)點(diǎn)負(fù)責(zé)寫入和查詢的數(shù)據(jù)進(jìn)行預(yù)處理
          • 中配置(高CPU核數(shù)、中內(nèi)存、低磁盤)
        • Coordinate節(jié)點(diǎn),通常在es大集群中配置,降低Master和Data Nodes的負(fù)載,負(fù)責(zé)接受請(qǐng)求、分發(fā)請(qǐng)求、匯總結(jié)果
          • 應(yīng)對(duì)客戶的未知查詢請(qǐng)求,深度聚合可能導(dǎo)致OOM
          • 中高配置(中高CPU核數(shù)、中高內(nèi)存、低磁盤)

        2.集群部署架構(gòu)

        2.1 水平擴(kuò)展

        96772766ecd1f96be4df906e01b83e20.webp

        備注:集群中存在大量復(fù)雜的查詢時(shí),通過(guò)增加協(xié)作節(jié)點(diǎn)提升查詢性能。

        2.2 讀寫分離

        7020bf155987a1d12109b667bd3884fa.webp

        備注:通過(guò)配置不同的讀寫負(fù)載均衡,分離讀寫請(qǐng)求,讀請(qǐng)求路由到協(xié)作節(jié)點(diǎn),寫請(qǐng)求路由到Ingest節(jié)點(diǎn),協(xié)作節(jié)點(diǎn)和Ingest節(jié)點(diǎn)可以水平擴(kuò)展。

        2.3 冷熱分離


        dce73c5f21ad6a97a061b6f3a53376bf.webp

        備注:冷熱分離架構(gòu),Hot節(jié)點(diǎn)通過(guò)高配置承擔(dān)更多的讀寫壓力,冷節(jié)點(diǎn)承擔(dān)一定的讀請(qǐng)求,常見(jiàn)于日志類使用場(chǎng)景。

        2.4 混合部署


        101f32378d2dcbbbf4cfd99a6237053f.webp

        備注:ES集群由data節(jié)點(diǎn)和master節(jié)點(diǎn)構(gòu)成,常見(jiàn)于非生產(chǎn)環(huán)境以及線上讀寫均無(wú)壓力的場(chǎng)景。

        瀏覽 106
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 国产成人精品亚洲精品色欲 | 国产精品永久成人免费 | 妲己无圣光无遮挡 | 少妇大叫太大太粗太爽了 | 伊大香蕉 |