三、ElasticSearch的部署
3.1 window上部署ES集群
在文章开头,我们使用的是单点部署ES,整个过程十分简单。但是在实际的应用中,我们基本部署的都是 ES 集群。因为 单点部署 会遇到机器故障,导致不可用。所以为了实现 ES 的高可用,必须进行集群部署,即一台机器上部署一个 ES 节点。
首先关闭之前开启的ES,用我们下载的压缩包,重新解压并复制三份,放在同一目录下,来用一台机器建一个有3个节点的伪集群。
我们需要在每个node的config文件的 elasticsearch.yml 文件中配置 每个节点的相关配置
例如,在node1节点的 elasticsearch.yml 配置如下内容:
# 集群名称:同一集群内所有节点该配置项相同
cluster.name: ES
# 该节点的名称
node.name: node-1
#该节点是作为master节点还是数据节点
node.master: true
node.data: true
#ip地址及端口
network.host: localhost
http.port: 9201
transport.tcp.port: 9301
#跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
在node2节点的elasticsearch.yml 配置内容:
# 集群名称:同一集群内所有节点该配置项相同
cluster.name: ES
# 该节点的名称
node.name: node-2
#该节点是作为master节点还是数据节点
node.master: true
node.data: true
#ip地址及端口
network.host: localhost
http.port: 9202
transport.tcp.port: 9302
#发现 node1节点
discovery.seed_hosts: ["localhost:9301"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
在node3节点的elasticsearch.yml 配置内容:
# 集群名称:同一集群内所有节点该配置项相同
cluster.name: ES
# 该节点的名称
node.name: node-3
#该节点是作为master节点还是数据节点
node.master: true
node.data: true
#ip地址及端口
network.host: localhost
http.port: 9203
transport.tcp.port: 9303
#发现 node1节点、node2节点
discovery.seed_hosts: ["localhost:9301","localhost:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
配置完毕后,依次启动 node1、node2、node3节点(双击 bin/elasticsearch.bat)。待节点都启动完毕后,可以通过
http://localhost:9201/_cluster/health //get请求
了解集群的运行情况: