Elasticsearch 主从复制部署记录
本部署记录是在三台虚拟机的环境下搭建 Elasticsearch 主从复制集群,
默认三台虚拟机中已经存在正常运行的Elasticserch 实例,
如不满足条件则参考上一篇:《 03_Elasticsearch 主从复制部署记录 》
主从复制概念
设想有三台服务器,由其中一台服务器中的 Elasticserch 实例保存数据,我们称其为主节点,
其余的两台中的 Elasticserch 实例负责从主节点同步数据,我们称其为随从节点
当主节点出现故障,又两个随从节点自动选举出一个新的主节点提供服务,达到 “高可用的目的”
配置主从复制集群
集群的配置只需要修改 Elasticserch 文件夹中 config 文件夹中的 elasticserch.yml 配置文件,注意使用普通用户修改
主节点的修改
## 集群名称
cluster.name: es-itcast-cluster
## 当前节点名称
node.name: node01
## 是否有资格当选主节点
node.master: true
## 是否存储数据
node.data: true
## 链接地址
network.host: 0.0.0.0
## 端口号
http.port: 9200
## 实例之间的通信端口
transport.port: 9300
transport.tcp.port: 9300
## 集群信息
discovery.zen.ping.unicast.hosts: ["192.168.31.151","192.168.31.154","192.168.31.157"]
cluster.initial_master_nodes: ["192.168.31.151","192.168.31.154","192.168.31.157"]
## 最少主节点数量
discovery.zen.minimum_master_nodes: 1
## 开放网络权限
http.cors.enabled: true
http.cors.allow-origin: "*"
从节点的修改
cluster.name: es-itcast-cluster
## 从节点的修改和主节点相同,只需要修改节点名称即可
## *** 无论是主节点还是从节点,各个实例名称绝不能重复 ***
node.name: node02
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["192.168.31.151","192.168.31.154","192.168.31.157"]
cluster.initial_master_nodes: ["192.168.31.151","192.168.31.154","192.168.31.157"]
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true
http.cors.allow-origin: "*"
重启Elasticsearch
## 删除所有 elasticsearch 实例中 data 文件夹下的节点数据
rm -rf ./elasticsearch/data/*
## 重启按照主从顺序重启集群节点
检查重启结果
-
可以通过查看 elasticsearch 重启日志判断是否出现错误
-
通过请求API查看集群健康状态
http://192.168.31.151:9200/
---------------------------------------
{
"cluster_name": "es-itcast-cluster",
"status": "green",
"timed_out": false,
## 证明三个实例已经建立了链接
"number_of_nodes": 3,
"number_of_data_nodes": 3,
"active_primary_shards": 1,
"active_shards": 2,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100
}
- 通过API查看主节点状态
http://192.168.31.151:9200/_cat/nodes
---------------------------------------
192.168.31.151 13 66 0 0.00 0.01 0.05 mdi - node01
192.168.31.157 14 95 0 0.00 0.01 0.05 mdi - node03
192.168.31.154 13 65 0 0.05 0.03 0.05 mdi * node02 ## 当选主节点
检查主从复制
创建索引
PUT http://192.168.31.154:9200/new_index
添加数据
POST http://192.168.31.154:9200/new_index/test/1
------------------------------------------------
{
"title": "测试集群",
"text": "主从复制",
"date": "2021/02/05"
}
查询数据
GET http://192.168.31.157:9200/_search
测试选举
## 手动关闭当前主节点,重新访问 http://IP:9200/_cat/nodes,看结果中是否存在新的主节点
测试主从复制
## 再次查询数据,看是否可以得到数据