1. 概述

Elasticsearch(ES)叢集支援分片和副本,能夠很容易的實現負載均衡、擴容、容災、高可用。

今天我們就來聊一下,Elasticsearch(ES)叢集是如何搭建的。

2. 場景介紹

伺服器A IP:192.168.1.8

伺服器B IP:192.168.1.144

伺服器C IP:192.168.1.22

三臺伺服器都已安裝單點的 Elasticsearch(ES),單點 Elasticsearch(ES)的安裝請參見我的另一篇文章《分散式搜尋引擎Elasticsearch(ES)在CentOS7中的安裝》。

3.Elasticsearch(ES)叢集的搭建

 3.1 清除舊資料

三臺伺服器都執行

# cd /usr/local/elasticsearch-7.14.1/data

# rm -rf nodes/

3.2 修改Elasticsearch配置檔案

# cd  /usr/local/elasticsearch-7.14.1/config

# vi elasticsearch.yml

 伺服器A配置:

 伺服器B配置:

伺服器C配置:

3.3 啟動三臺伺服器的Elasticsearch(ES)

# su esuser

# cd  /usr/local/elasticsearch-7.14.1/bin

# ./elasticsearch

可以使用Head外掛檢視Elasticsearch叢集的資訊,連線哪臺伺服器,顯示的資訊一樣。

一主二從架構。

 3.4 叢集分片測試

新建一個索引 index_user,分片數為3,副本數為1。

再新建一個索引 index_product,分片數為3, 副本數為2。

通過Head外掛能夠看出,主分片和副本被分配到了不同的伺服器,任意一臺機器宕機,對資料都沒有影響,很好的實現了容災和高可用機制。

因為每個分片被分配的機器不同,當讀取時,Elasticsearch會採用輪詢讀取主副分片的策略,從而實現了負載均衡的機制。

通過設定主分片的數量實現擴容。

3.5 宕機測試

1)停用從節點

停用一個從節點後,叢集健康值變為黃色,對外服務不受影響。

2)停用主節點

停用主節點後,其中一個從節點會被選舉為主節點,叢集健康值變為黃色,對外服務不受影響。

4. 綜述

今天簡單聊了一下 Elasticsearch(ES)叢集的搭建,希望可以對大家的工作有所幫助。

歡迎幫忙點贊、評論、加關注 :)

關注追風人聊Java,每天更新Java乾貨。