分布式搜索引擎ES--Elasticsearch集群
创始人
2024-11-27 03:33:14
0

1.Elasticsearch集群的概念

分片机制:每个索引都可以被分片
索引my_doc只有一个主分片;索引shop有三个主分片;索引shop2有5个主分片;(参考前面案例)
每个主分片都包含索引的数据,由于目前是单机,所以副分片是没有的,集群健康值显示为黄色。
副分片是主分片的备份;同一个分片的主与副本是不会放在同一个服务器里的,因为一旦宕机,这个分片就没了;
Es集群搭建的准备工作:
使用虚拟机克隆功能,把单个es虚拟机克隆为三个,我们会搭建3节点的es集群。
在这里插入图片描述
如上图。当有三个服务器,首先对主分片分布服务器。副分片不能跟主分片在同一服务器

2.搭建Elasticsearch集群

具体的Elasticsearch的安装参考如下链接:
https://blog.csdn.net/TOMORROW6COME/article/details/140529958?spm=1001.2014.3001.5501
准备了3个服务器。(或者三个虚拟机)
克隆以后,先将es中的打他目录,一定要清空,这里面包含了原先的索引库数据。
命令:rm nodes/ -rf
在这里插入图片描述
配置集群
修改elasticsearch.yml这个配置文件如下:

# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了 cluster.name: nk-es-cluster  # 每一个节点的名称,必须不一样 node.name: es-node1  # http端口(使用默认即可) http.port: 9200  # 主节点,作用主要是用于来管理整个集群,负责创建或删除索引,管理其他非master节点(相当于企业老总) node.master: true  # 数据节点,用于对文档数据的增删改查 node.data: true  # 集群列表 discovery.seed_hosts: ["192.168.1.184", "192.168.1.185", "192.168.1.186"]  # 启动的时候使用一个master节点 cluster.initial_master_nodes: ["es-node1"] 

最后可以通过如下命令查看配置文件的内容:

more elasticsearch.yml | grep ^[^#] 

分别启动3台es
切换到esuser后在启动,访问集群各个节点,查看信息:

http://192.168.1.184:9200/
http://192.168.1.185:9200/
http://192.168.1.186:9200/

3.Elasticsearch集群分片测试

配置信息:
a:1/0; b:3/1; c:5/2:
集群分片测试:第一个分片不一定在master节点
在这里插入图片描述

4.Elasticsearch集群节点宕机测试

Node2宕机测试:
在这里插入图片描述
Node1:master主节点宕机测试:经过选举es-node3成为maser节点
在这里插入图片描述
宕机恢复后:
在这里插入图片描述
此时node3宕机:es-node2经过选举成为主节点
在这里插入图片描述
node3恢复后,node2任然为主节点。

5.Elasticsearch集群脑裂现象讨论

脑裂:发生网络中断或者服务器宕机,那么集群会有可能划成两个部分,各自有
自己的master节点来管理。
在这里插入图片描述
最小投票人数:1,即一台服务器就是主节点

脑裂解决方案
master主节点要经过多个master节点共同选举后才能成为新的主节点。就跟班级里选班长一样,并不是你1个人能决定的,需要班里半数以上的人决定。

解决实现原理:半数以上的节点同意选举,节点方可成为新的master。

discovery.zen.minimum_master_nodes=(N/2)+1 

N为集群的中master节点的数量,也就是那些 node.master=true 设置的那些服务器节点总数。
ES 7.X
在最新版7.x中,minimum_master_node这个参数已经被移除了,这一块内容完全由es自身去管理,这样就避免了脑裂的问题,选举也会非常快。

6.Elasticsearch集群的文档读写原理

文档写原理:
客户端会根据情况选择一个节点去完成相应的对接工作(协调节点:coordinating node);
协调节点是可变的
用于接收用户的请求(controller),针对节点进行路由,然后hash计算,决定数据应该写到哪一个主分片里;(文档路由跟转发)
在这里插入图片描述
文档读原理:
在这里插入图片描述

相关内容

热门资讯

金花链接房卡到哪里买/微信链接... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
玩家攻略,牛牛房卡游戏平台加盟... 乐乐大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
分享!微信炸金花房卡链接怎么弄... 微信游戏中心:炸金花房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信炸金花房...
正版授权!怎么买斗牛房卡悠悠众... 微信游戏中心:悠悠众娱房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
推荐一款!牛牛房卡哪里有卖的雷... 您好!微信雷霆大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(雷霆大厅)大厅介绍:...
正版授权!牛牛房卡批发平台蜜蜂... 今 日消息,蜜蜂大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
重大通报,游戏推荐牛牛房卡出售... 卡贝大厅/新上游房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
推荐一款!金花房卡批发价麒麟大... 推荐一款!金花房卡批发价麒麟大厅/微信链接房卡批发价麒麟大厅是一款非常受欢迎的游戏,咨询房/卡添加微...
头条推荐!牛牛房卡代理新神兽/... 头条推荐!牛牛房卡代理新神兽/青龙大厅/房卡是在哪里买的Sa9Ix苹果iPhone 17手机即将进入...
分享!微信怎么开牛牛房间/橘子... 微信游戏中心:牛牛房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
重大通报,金花房卡专卖店玄龙大... 今 日消息,玄龙大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
科技实测!金花房卡代理零售新海... 新海贝大厅/新神兽房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
推荐一款!牛牛房卡出售神盾大厅... 推荐一款!牛牛房卡出售神盾大厅/房卡怎么弄神盾大厅是一款非常受欢迎的游戏,咨询房/卡添加微信:883...
玩家攻略,金花房卡是正规的蜜蜂... 微信游戏中心:蜜蜂大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
头条推荐!金花充值房卡精卫大厅... 精卫大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
分享!微信炸金花链接怎么买房卡... 微信游戏中心:炸金花房卡,添加微信【33699510】,进入游戏中心或相关小程序,搜索“微信炸金花房...
IA解析/金花房卡代理零售海星... 海星大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
一分钟了解!金花房卡专卖店超凡... 一分钟了解!金花房卡专卖店超凡联盟/微信小游戏充值房卡Sa9Ix苹果iPhone 17手机即将进入量...
IA解析/金花房卡批发价星驰娱... 微信游戏中心:星驰娱乐房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
玩家攻略,牛牛房卡怎么获得水仙... 水仙大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...