elasticsearch的分布式架構基本原理

2021-10-08 02:22:21 字數 1296 閱讀 6947

首先,es 的設計理念就是分布式搜尋引擎,底層還是基於lucene的

核心思想就是在多台機器上啟動多個es程序實列,組成乙個es集群。

es中儲存資料的基本單位是索引,假設你要在es中儲存資料,首先就要在es中建立乙個索引,所有的資料都寫到這個索引裡面去,乙個索引差不多相當於mysql裡面的一張表。

1、index 相當於mysql裡的一張表

2、type:乙個index裡面可以有很多type,每個type的字段都是差不多的。但是有一些差別,例如:訂單資料中的實物訂單和虛擬訂單。就需要在index裡建立兩個type;

4、document相當於index裡type 的一條資料 ;

5、每個document有多個field,field相當於document中每個欄位的值

接著你建乙個索引,這個索引可以拆分成多個shard,每個shard儲存部分資料。實現分布式

每個shard裡的資料有多個備份,如果某台機器宕機,別的機器上還是有資料副本,這樣就構成高可用。

如下圖:es客戶端會將資料寫入primary shard.然後會將資料同步到replica shard.實現資料的備份。es集群會選舉乙個節點作為master node (es程序02),主要作用就是負責維護索引元資料、切換primary shard 和replica shard 的身份;

1、如果master node 宕機了,就會重新選舉乙個新的master node(es程序03).接著新的master node 將es程序03 中的shard 02  replica 變為primary shard ,一旦宕機的機器維護好了,就會將原來的master node 的shard 02 primary 變更為shard 02  replica。這樣集群就恢復了

2、如果是非master node  宕機,假設是es程序01宕機,那麼master會將它的備份shard身份切換為primary shard .當01修復,master切換01 上shard01 primary為shard 01 replica. 

以上就是es分布式部署原理

注意的是es客戶端寫資料只能寫到primary shard ,但是讀資料既可以從primary shard ,也可以從replica shard 

Elasticsearch整合IK中文分詞器

因為我安裝的 elasticsearch 是5.6.9版本,所以對應安裝 elasticsearch analysis ik 5.6.9 版本 bin elasticsearch plugin install cp mnt hgfs elasticsearch analysis ik 5.6.9 e...

elasticsearch 安裝 ik中文分詞器

wgetzip包裡面的檔案結構如下 備註 mvn package打包完成後在 target releases 目錄下就能夠看到相同的檔案結構了 config資料夾裡面的內容是分詞器分詞時讀取檔案的主要目錄,大概說說裡面的各檔案內容 ikanalyzer.cfg.xml 用來配置自定義詞庫 main....

elasticsearch配置IK中文分詞器

未使用ik分詞器的時候測試分詞效果 結果如下 使用ik分詞器之後,結果如下 結果如下 如果未安裝ik分詞器,那麼你寫 analyzer ik max word 程式就會報錯,因為你沒有安裝ik分詞器 如果你安裝了ik分詞器之後,你不指定分詞器,不加上 analyzer ik max word 這句話...