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