4.ES--本地搭建集群【一主两从-- Mac版】
为了让我们的服务更加的高可用和健壮,我们在本地搭建一个集群测试步骤如下:
接着单机的环境【Mac】,把es 改名为 es-master 然后再复制出两个 es-slave1 和 es-slave2
cp -R es-master es-slave1
cp -R es-master es-slave2
接着更改es-master 的elasticsearch.yml 文件中的内容如下:
# 集群名称
cluster.name: es-cluster
# 节点名称
node.name: node-master
node.master: true
node.data: true
network.host: 127.0.0.1
# http端口
http.port: 9200
# tcp监听端口
transport.tcp.port: 9301 # 集群间的访问的端口
# 解决跨域配置,从机和head插件连接
http.cors.enabled: true
http.cors.allow-origin: "*"
然后后台启动:
./bin/elasticsearch -d
我们可以通过 ps -ef | grep “elasticsearh” 服务是否启动,可以通过postman工具查看集群状态如下:
接着修改 es-slave1 和 es-slave2 的 elasticsearch.yml 配置文件
在配置之前要把es-slave1 和 es-slave2中的data文件夹和logs中的文件删掉
注:配置的时候集群名称必须保持一致,节点名称修改,提供的端口号也得修改包括transport,增加的配置如下,其他保持不变:
node.name: node-slave1
http.port: 9201
transport.tcp.port: 9302
discovery.seed_hosts: ["localhost:9301”] # 这是寻找master服务,下一个就要把这个9302的也加进去
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
然后也是后台启动,也可以通过 ps -ef | grep “elasticsearch” 这是再发送集群状态查询如下:
head插件显示效果如下所示:
第二个从机的配置如下:【一定记得这个是从es-master复制过来的,删除data目录和logs里的文件,不然启动后无法刷新,如果非复制直接新的解压出来的无需做此项操作】
node.name: node-slave2
http.port: 9202
transport.tcp.port: 9303
discovery.seed_hosts: ["localhost:9301","localhost:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
效果如下: