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乾貨。