最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Elasticsearch的核心概念詳解

 更新時間:2023年07月27日 10:55:05   作者:碼農(nóng)BookSea  
這篇文章主要介紹了Java中Elasticsearch的核心概念詳解,Elasticsearch 是一個分布式、免費和開放的搜索和分析引擎,適用于所有類型的數(shù)據(jù),包括文本、數(shù)字、地理空間、結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),需要的朋友可以參考下

節(jié)點

  • 每個Elasticsearch節(jié)點實際上就是一個Java進(jìn)程,就是一個Elasticsearch的實例。
  • 一個節(jié)點 ≠一臺服務(wù)器,也就是說我可以在一臺服務(wù)器上啟動多個Elasticsearch實例。

角色

集群節(jié)點角色可以在配置文件elasticsearch.yml中通過node.roles配置,如果配置了節(jié)點角色,那么該節(jié)點將只會執(zhí)行配置的角色功能。

master:候選節(jié)點

所謂master節(jié)點,就是在主節(jié)點down機(jī)的時候,可以參與選舉,取而代之的節(jié)點。

舉個例子:主節(jié)點好比班長,在班長不在的時候(主節(jié)點down機(jī)了),要選舉出一個臨時班長(master中選舉)。

master節(jié)點不僅有選舉權(quán)還有被選舉權(quán)。每個master節(jié)點主要負(fù)責(zé)索引創(chuàng)建、索引刪除、追蹤節(jié)點信息和決定分片分配節(jié)點等。

配置節(jié)點(下面節(jié)點配置方法同):

node.roles: [ master ]

data:數(shù)據(jù)節(jié)點

數(shù)據(jù)節(jié)點顧名思義就是存放數(shù)據(jù)的節(jié)點,數(shù)據(jù)節(jié)點負(fù)責(zé)存儲文檔數(shù)據(jù)和數(shù)據(jù)的CRUD操作。

因此該節(jié)點是CPU和IO密集型,需要實時監(jiān)控該節(jié)點資源信息,以免過載。

數(shù)據(jù)節(jié)點又分為:data_content,data_hot,data_warm,data_code。

  • data_content:數(shù)據(jù)內(nèi)容節(jié)點,目錄節(jié)點負(fù)責(zé)存儲常量數(shù)據(jù),且不隨著時間的推移,改變數(shù)據(jù)的溫層(hot、warm、cold)。且該節(jié)點的查詢優(yōu)先級是高于其它IO操作,所以該節(jié)點search和aggregations都會較快一些。
  • data_hot:熱節(jié)點,保存熱數(shù)據(jù),經(jīng)常會被訪問,用于存儲最近頻繁搜索和修改的時序數(shù)據(jù)。
  • data_code:冷節(jié)點,保存冷數(shù)據(jù),很少會被訪問,當(dāng)數(shù)據(jù)不再更新,那么可以將該數(shù)據(jù)移動到冷數(shù)據(jù)節(jié)點;冷數(shù)據(jù)節(jié)點用于存儲只讀,且訪問頻率較低的數(shù)據(jù)。該節(jié)點機(jī)器性能可以低一點。
  • data_warm:溫節(jié)點,介于熱節(jié)點和冷節(jié)點之間(溫節(jié)點是我自己翻譯的),當(dāng)數(shù)據(jù)訪問頻率下降,可以將其移動到溫節(jié)點,溫節(jié)點用于存儲修改較少,但仍然有查詢的數(shù)據(jù)。查詢的頻率肯定比熱點節(jié)點要少。

Ingest:預(yù)處理節(jié)點

作用類似于Logstash中的Filter,Ingest其實就是管道的入口節(jié)點,比如說我們在做日志分析的時候,可以把日志輸出的數(shù)據(jù)交給預(yù)處理節(jié)點做預(yù)處理。

ml:機(jī)器學(xué)習(xí)節(jié)點

機(jī)器學(xué)習(xí)節(jié)點負(fù)責(zé)處理機(jī)器學(xué)習(xí)相關(guān)請求。

remote_ cluster_ client:候選客戶端節(jié)點

遠(yuǎn)程候選節(jié)點可以作為遠(yuǎn)程集群的客戶端,主要負(fù)責(zé)搜索遠(yuǎn)程集群數(shù)據(jù)和同步兩個集群間數(shù)據(jù)。

transform:轉(zhuǎn)換節(jié)點

轉(zhuǎn)換節(jié)點會進(jìn)行一種特殊操作,通過特定聚集語句計算,然后將結(jié)果寫到新的索引中。

voting_ only:僅投票節(jié)點

在master選舉過程中,僅投票節(jié)點顧名思義就是僅僅投票,不會被選舉為master。

Coordinating only node:協(xié)調(diào)節(jié)點

協(xié)調(diào)節(jié)點主要負(fù)責(zé)根據(jù)集群狀態(tài)路由分發(fā)搜索,路由分發(fā)bulk操作。此外每個節(jié)點都是自帶協(xié)調(diào)節(jié)點功能

分片

分片的思想在很多分布式應(yīng)用和海量數(shù)據(jù)處理的場所非常常見,通常來說,面對海量數(shù)據(jù)的存儲,單個節(jié)點顯得力不從心。

通俗解釋,分片就是將數(shù)據(jù)拆分多份,放到不同的服務(wù)器節(jié)點。

Elasticsearch里的分片為為2種:主分片和副本分片。

Shards主分片

es可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分布到不同的節(jié)點上。構(gòu)成分布式搜索。

分片的數(shù)量只能在索引創(chuàng)建前指定,并且索引創(chuàng)建后不能更改。這里和索引分片的算法有關(guān),因為是通過取模算法去判斷分到哪,如果改變了就無法正常查詢之前的索引。

當(dāng)客戶端發(fā)起創(chuàng)建document的時候,es需要確定這個document放在該index哪個shard上。這個過程就是數(shù)據(jù)路由。

路由算法:shard = hash(routing) % number_of_primary_shards。

這里的routing指的就是document的id,如果number_of_primary_shards在查詢的時候取余發(fā)生的變化,無法獲取到該數(shù)據(jù)。

Replicas副本分片

代表索引副本,es可以設(shè)置多個索引的副本,副本的作用一是提高系統(tǒng)的容錯性,當(dāng)某個節(jié)點某個分片損壞或丟失時可以從副本中恢復(fù)。

二是提高es的查詢效率,es會自動對搜索請求進(jìn)行負(fù)載均衡。

  • 一個索引包含一個或多個分片,在7.0之前默認(rèn)五個主分片,每個主分片一個副本;在7.0之后默認(rèn)一個主分片。副本可以在索引創(chuàng)建之后修改數(shù)量,但是主分片的數(shù)量一旦確定不可修改,只能創(chuàng)建索引。
  • 每個分片都是一個Lucene實例,有完整的創(chuàng)建索引和處理請求的能力。
  • ES會自動在nodes上做分片均衡。
  • 一個doc不可能同時存在于多個主分片中,但是當(dāng)每個主分片的副本數(shù)量不為一時,可以同時存在于多個副本中。
  • 每個主分片和其副本分片不能同時存在于同一個節(jié)點上,所以最低的可用配置是兩個節(jié)點互為主備。
  • 副本分片是不能直接寫入數(shù)據(jù)的,只能通過主分片做數(shù)據(jù)同步。
  • 增減節(jié)點時,shard會自動在nodes中負(fù)載均衡。

集群

上面所說的節(jié)點角色構(gòu)成了整個集群。

集群狀態(tài)

  • Green:主/副分片都已經(jīng)分配好且可用,集群處于最健康的狀態(tài)100%可用。
  • Yellow:主分片可用,但是至少有一個副本是未分配的。這種情況下數(shù)據(jù)也是完整的,但是集群的高可用性會被弱化。
  • Red:至少有一個不可用的主分片。此時只是部分?jǐn)?shù)據(jù)可以查詢,已經(jīng)影響到了整體的讀寫,需要重點關(guān)注。 健康值檢查
//查看集群健康狀況
_cat/health
_cluster/health

返回參數(shù)說明

示例:

{
  "cluster_name" : "elastic-log-xxx",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 24,
  "number_of_data_nodes" : 21,
  "active_primary_shards" : 27777,
  "active_shards" : 27804,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}

在這里插入圖片描述

索引和文檔

es中索引類比為關(guān)系型數(shù)據(jù)庫中的Table

在7.0版本之前index由若干個type組成,type實際上是文檔的邏輯分類,而文檔是es存儲的最小單元。

7.0及之后弱化了type的概念,7.x版本index只有一個type:_doc。

文檔(doc)可以類比為關(guān)系型數(shù)據(jù)庫中的行,每個文檔都有一個文檔id。

到此這篇關(guān)于Java中Elasticsearch的核心概念詳解的文章就介紹到這了,更多相關(guān)Elasticsearch核心概念內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的繼承詳情

    Java中的繼承詳情

    這篇文章主要介紹了Java中的繼承詳情,繼承是面向?qū)ο笕筇卣髦?,可以使得子類具有父類的屬性和方法,還可以在子類中重新定義,以及追加屬性和方法,下文介紹需要的朋友可以參考下
    2022-04-04
  • AJAX?SpringBoot?前后端數(shù)據(jù)交互的項目實現(xiàn)

    AJAX?SpringBoot?前后端數(shù)據(jù)交互的項目實現(xiàn)

    本文主要介紹了AJAX?SpringBoot?前后端數(shù)據(jù)交互的項目實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java 線程池核心參數(shù)、執(zhí)行流程與實戰(zhàn)建議全解析

    Java 線程池核心參數(shù)、執(zhí)行流程與實戰(zhàn)建議全解析

    主要介紹了 Java 線程池:核心參數(shù)、執(zhí)行流程與實戰(zhàn)建議,我將用最通俗的方式帶你搞懂 Java 線程池,從構(gòu)造函數(shù)開始,講透執(zhí)行機(jī)制、參數(shù)配置,再結(jié)合我在真實項目中的使用經(jīng)驗,總結(jié)出一套實戰(zhàn)建議,需要的朋友可以參考下
    2025-04-04
  • Spring?MVC跨域問題及解決

    Spring?MVC跨域問題及解決

    這篇文章主要介紹了Spring?MVC跨域問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • java重試機(jī)制使用RPC必須考慮冪等性原理解析

    java重試機(jī)制使用RPC必須考慮冪等性原理解析

    這篇文章主要為大家介紹了java重試機(jī)制使用RPC必須考慮冪等性原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • mybatis3中@SelectProvider傳遞參數(shù)方式

    mybatis3中@SelectProvider傳遞參數(shù)方式

    這篇文章主要介紹了mybatis3中@SelectProvider傳遞參數(shù)方式。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • JAVA反射機(jī)制實例詳解

    JAVA反射機(jī)制實例詳解

    這篇文章主要介紹了JAVA反射機(jī)制,以實例形式較為詳細(xì)的分析講解了Java反射機(jī)制的具體概念、功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • idea搭建可運(yùn)行Servlet的Web項目

    idea搭建可運(yùn)行Servlet的Web項目

    在網(wǎng)上看到一篇很詳細(xì)的 intelliJ IDEA 創(chuàng)建web項目并簡單部署servlet的圖文教程,今天自己也配置一下,留個筆記,感興趣的可以了解一下
    2021-06-06
  • 解決IDEA上循環(huán)依賴報錯問題Error:java: Annotation processing is not supported for module cycles

    解決IDEA上循環(huán)依賴報錯問題Error:java: Annotation processing&n

    這篇文章主要介紹了解決IDEA上循環(huán)依賴報錯問題Error:java: Annotation processing is not supported for module cycles,具有很好的參考價值,希望對大家有所幫助
    2023-10-10
  • VS Code配置Java環(huán)境全過程

    VS Code配置Java環(huán)境全過程

    文章介紹了如何在VSCode中配置和運(yùn)行Java項目,包括安裝JDK、配置環(huán)境變量、安裝VSCode插件、處理不同場景的Java項目運(yùn)行以及常見優(yōu)化方法
    2026-02-02

最新評論

南平市| 连云港市| 左云县| 铁岭县| 科尔| 平谷区| 乌兰县| 法库县| 和平县| 仁布县| 潞城市| 泰州市| 金华市| 宜宾县| 两当县| 洛南县| 岚皋县| 习水县| 陆河县| 郧西县| 平遥县| 达拉特旗| 抚宁县| 乌拉特前旗| 彩票| 上高县| 保康县| 双江| 甘泉县| 西华县| 体育| 康乐县| 江油市| 万州区| 星座| 武威市| 柳林县| 万载县| 平阳县| 绿春县| 波密县|