一、前言
单台Elasticsearch服务器提供服务,往往都会有性能瓶颈,所以在我们的大型分布式系统中集群肯定必不可少。
单点服务器也存在一些其他问题:
- 单台机器存储容量有限
- 单服务器容易出现单点故障,无法实现高可用
- 单服务的并发处理能力有限
PS:这也是为什么在前面的文章安装单台ES主机的时候,在ES-head上看到的集群健康状态是黄色的了【副本在同一个节点上,单台主机挂了就全部凉凉~】
一般出于高性能及高可用方面来考虑集群中节点数量都是3个以上,集群的作用就是能提高性能,并增加容错。
那么了解了集群的必要性和优势以后,我们开始动手搭建一个简易的集群来玩玩~
PS:由于我的Linux主机空间有限,所以集群的相关操作就在我的本机上进行了,特此说明。
二、下载并配置ES集群中的节点
1、下载
先去中文社区下载对应版本的ES:https://elasticsearch.cn/download/
2、解压
3、配置节点信息
直接复制下面的内容到对应节点目录下的elasticsearch.yml文件中去
PS:需要先在每个节点下创建data和logs目录,如果原来有data目录请一定要删除以后再从新创建,否则可能导致集群创建失败!!!
node-9200
#服务地址
http.port: 9200
network.host: 0.0.0.0
#数据和日志路径
path.data: G:elasticsearchelasticsearch-7.6.1-node-9200data
path.logs: G:elasticsearchelasticsearch-7.6.1-node-9200logs
#集群名称,节点之间要保持一致
cluster.name: zh-elasticsearch
cluster.initial_master_nodes: ["node-9200","node-9201","node-9202"]
#节点名称,集群内要唯一
node.name: node-9200
node.master: true
node.data: true
#tcp 监听端口
transport.tcp.port: 9300
discovery.seed_hosts: ["192.168.200.21:9300","192.168.200.21:9301","192.168.200.21:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
node-9201
#服务地址
http.port: 9201
network.host: 0.0.0.0
#数据和日志路径
path.data: G:elasticsearchelasticsearch-7.6.1-node-9201data
path.logs: G:elasticsearchelasticsearch-7.6.1-node-9201logs
#集群名称,节点之间要保持一致
cluster.name: zh-elasticsearch
cluster.initial_master_nodes: ["node-9200","node-9201","node-9202"]
#节点名称,集群内要唯一
node.name: node-9201
node.master: true
node.data: true
#tcp 监听端口
transport.tcp.port: 9301
discovery.seed_hosts: ["120.24.58.161:9300","192.168.200.21:9301","192.168.200.21:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
node-9202
#服务地址
http.port: 9202
network.host: 0.0.0.0
#数据和日志路径
path.data: G:elasticsearchelasticsearch-7.6.1-node-9202data
path.logs: G:elasticsearchelasticsearch-7.6.1-node-9202logs
#集群名称,节点之间要保持一致
cluster.name: zh-elasticsearch
cluster.initial_master_nodes: ["node-9200","node-9201","node-9202"]
#节点名称,集群内要唯一
node.name: node-9202
node.master: true
node.data: true
#tcp 监听端口
transport.tcp.port: 9302
discovery.seed_hosts: ["120.24.58.161:9300","192.168.200.21:9301","192.168.200.21:9302"]
discovery.zen.fd.ping_timeout: 1m
discovery.zen.fd.ping_retries: 5
#跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
三、配置kibana
前面的文章介绍过kibana怎么在windows系统上安装了,这里就只放出配置:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.200.21:9200","http://192.168.200.21:9201","http://192.168.200.21:9202"] #这里是elasticsearch的访问地址
server.name: "zh-kibana"
i18n.locale: "zh-CN" #汉化
四、测试集群
至此,集群搭建就完成了~~~