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