Elasticsearch集群內的原理


    一個運行中的 Elasticsearch 實例稱為一個 節點,而集群是由一個或者多個擁有相同 cluster.name 配置的節點組成, 它們共同承擔數據和負載的壓力。當有節點加入集群中或者從集群中移除節點時,集群將會重新平均分布所有的數據。
    當一個節點被選舉成為 主 節點時, 它將負責管理集群范圍內的所有變更,例如增加、刪除索引,或者增加、刪除節點等。 而主節點並不需要涉及到文檔級別的變更和搜索等操作,所以當集群只擁有一個主節點的情況下,即使流量的增加它也不會成為瓶頸。 任何節點都可以成為主節點。
    作為用戶,我們可以將請求發送到 集群中的任何節點 ,包括主節點。 每個節點都知道任意文檔所處的位置,並且能夠將我們的請求直接轉發到存儲我們所需文檔的節點。 無論我們將請求發送到哪個節點,它都能負責從各個包含我們所需文檔的節點收集回數據,並將最終結果返回給客戶端。 Elasticsearch 對這一切的管理都是透明的。
 
查看集群健康狀態:
#curl -X GET "localhost:9200/_cluster/health"

 

返回值status 字段指示着當前集群在總體上是否工作正常:
Green:所有的主分片和副本分片都正常運行。

Yellow:所有的主分片都正常運行,但不是所有的副本分片都正常運行。Red:有主分片沒能正常運行。
添加索引:索引實際上是指向一個或者多個物理 分片 的 邏輯命名空間 。一個 分片 是一個底層的 工作單元 ,它僅保存了 全部數據中的一部分。一個分片是一個 Lucene 的實例,以及它本身就是一個完整的搜索引擎。 我們的文檔被存儲和索引到分片內,但是應用程序是直接與索引而不是與分片進行交互。Elasticsearch 利用分片將數據分發到集群內各處。一個分片可以是 主 分片或者 副本 分片。 索引內任意一個文檔都歸屬於一個主分片,所以主分片的數目決定着索引能夠保存的最大數據量。技術上來說,一個主分片最大能夠存儲 Integer.MAX_VALUE - 128 個文檔:一個副本分片只是一個主分片的拷貝。 副本分片作為硬件故障時保護數據不丟失的冗余備份,並為搜索和返回文檔等讀操作提供服務。副本分片數可以隨時修改。

number_of_shards:主分片個數
number_of_replicas:副本分片格式

 

添加第二個節點:在同一台機器上啟動了第二個節點時,只要它和第一個節點有同樣的 cluster.name 配置,它就會自動發現集群並加入到其中。 但是在不同機器上啟動節點的時候,為了加入到同一集群,需要配置一個可連接到的單播主機列表。

discovery.zen.ping.unicast.hosts: ["host1", "host2:port”]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM