优秀的编程知识分享平台

网站首页 > 技术文章 正文

「扫盲」elasticsearch(二)—集群安装篇

nanyue 2024-10-21 06:14:11 技术文章 2 ℃

背景

elasticsearch作为搜索引擎,单机环境下,一旦服务器宕机或者被黑客攻击,那么我们的索引存储业务以及查询业务就会不可用,那妥妥的就是生产事故了。为了不发生这样悲伤的故事,我们就需要提高elasticsearch环境的高可用性。两个字,"集群"。下面跟着小编一起来搭建elasticsearch的集群环境吧。

原理

elasticsearch中是以一个个索引来进行存储数据的,一个索引相当于一个数据库,创建索引的时候,会对索引进行分片设置。索引存储的时候并不是整个存在一起的,而是被分片进行存储的,默认会分成5个分片(可以自定义分片数据量)。集群环境下,分片会根据算法尽可能的平均分配在各个节点,这样就相当于一份数据被分成了多份并保存在了不同的服务器上。并且在elasticsearch中还有一个副本的概念,即在一台服务器上生成了一个分片,称为原始分片,elasticsearch默认会生成一份副本,这时我们只需要将某个分片的副本存在另外一台主机上,这样当某台主机宕机了,我们依然还可以从另外一台主机的副本中找到对应的数据。所以从外部来看,数据结果是没有任何区别的。

集群安装

安装多个elasticsearch

上篇文章我们详细分享了elasticsearch单机安装的步骤,不清楚怎么安装的,可以先看:

【扫盲】elasticsearch(一)— 安装篇

如果是自己练习,可以在一台服务器上使用不同的端口,安装多个elasticsearch;

如果是生产环境,建议是安装在多个服务器上,这样提高容错率,从而提高高可用性。因为一台服务器的话,分片和副本其实是没意义的,一台主机挂掉了,就全挂掉了。

修改配置

elasticsearch-6.6.2/config/elasticsearch.yml

主节点配置文件:

cluster.name: my-es 
node.name: node0 
node.master: true 
network.host: 0.0.0.0 
http.port: 9200 
transport.tcp.port: 9300 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0 .1:9302"] discovery.zen.minimum_master_nodes: 2 
http.cors.enabled: true 
http.cors.allow-origin: "*"

工作节点配置文件:

cluster.name: my-es 
node.name: node1 
node.master: false 
network.host: 0.0.0.0 
http.port: 9200 
transport.tcp.port: 9301 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0 .1:9302"] discovery.zen.minimum_master_nodes: 2 
http.cors.enabled: true 
http.cors.allow-origin: "*"
cluster.name: my-es 
node.name: node2 
node.master: false 
network.host: 0.0.0.0 
http.port: 9200 
transport.tcp.port: 9302 
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300","127.0.0.1:9301","127.0.0 .1:9302"] discovery.zen.minimum_master_nodes: 2 
http.cors.enabled: true 
http.cors.allow-origin: "*"

可能会遇到的问题

[node0] failed to send join request to master

解决方法: 将报错节点elasticsearch-6.6.2/data文件下的文件清空

启动集群

分别将三个节点都启动:

bin/elasticsearch -d

集群健康检查

http://集群地址:9200/_cat/health?v

(green:正常;yellow:异常;red:错误)

如需获取源码,请关注后,私信发送"源码"给小编,非常感谢

最近发表
标签列表