ElasticSearch教程——分片、扩容以及容错机制(转学习使用)

本文深入解析Elasticsearch的Primaryshard和replicashard机制,包括工作原理、性能与容量扩容策略及容错机制。阐述了shard如何在节点间负载均衡,以及primaryshard与replicashard在读写分离、容错和负载分担中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Primary shard和replica shard机制

1、index包含多个shard;

2、每个shard都是一个最小的工作单元,承载部分的数据,Lucene实例,完整的简历索引和处理请求的能力;

3、增减节点时,shard会自动在nodes中负载均衡;

4、primary shard和replica shard,每一个document只会存在某一个primary shard以及其对应的replica shard中,不可能存在于多个primary shard中;

5、replica shard是primary shard的副本,负责容错,以及承担读请求负载(通常情况下可以让primary shard负责写,replica shard负责读,来实现读写分离)

6、primary shard的数量在创建的时候就固定了,replica shard的数量可以随时修改;

7、primary shard的默认数量是5,replica shard是1,默认有10个shard;其中5个primary shard以及5个replica shard;

8、primary shard和replica shard不能和自己的replica shard 放在一个节点中(这样规定是为避免节点宕机的时候,primary shard和replica shard数据都都丢失,起不到容错的作用),但是可以和其他的primary shard的replica shard放在同一个节点中;

三、性能扩容

就像上面说的primary shard 在创建的时候就已经固定了,不可以再修改。也就是说如果我在创建的时候设置了primary shard是3(6个shard,3 primary,3 replica),最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最好。那如果我们的超出了上面所说的扩容极限了怎么办呢?primary shard不是不能修改么?

是的,primary shard 在创建后是不能修改的,但是replica shard可以添加啊,我们可以创建9个shard(3primary,6 replica),将服务器扩容到9台机器,吞吐量会大大增加,是3台服务器的三倍,当然为了提高容错率也可以在此基础上在每台服务器上部署多个shard(primary和replica不能在同一台服务器上)

四、容量扩容

上述的扩容指的是性能上的扩容(即高可用),但是在实际生活中可能会面临需要内存上扩容,他的极限就是每个primary shard部署单台服务器(3个primary shard分别部署3台服务器),所以在创建的时候自己要注意创建primary shard的数量,如果内存上问题还是不能解决,那么就需要通过扩容磁盘和定期清理数据来解决内存问题了

五、容错机制

master node宕机后,会自动重新选举master,此时为red;
replica容错:新master是将replica提升为primary shard,此时为yellow(因为replica被升级为primary了,此时replica并不齐全);
重启宕机node,master copy replica到该node,但是该node使用原有的shard并同步宕机后的修改(即仅同步宕机后丢失的数据),此时为green;

 

转载于:https://www.cnblogs.com/yfb918/p/10718413.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值