一、primary shard 和 replica shard 分片机制
在公司里,我们的ES通常都是集群的,比如由6台ES机器组成的集群。
创建索引index时,为了保证index数据的可靠性,会进行分片,比如创建3个shard:即shard1,shard2和shard3,每个分片存储1/3的数据。
为了防止某个机器坏了,机器上的shard数据丢失,同时需要给shard添加副本。
每个 shard 有1个 primary shard 和1个或多个 replica shard,primary shard可以用于读和写,replica shard只能用于读。
如果 primary shard 挂了,由某一个 replica shard 升级为 primary shard。
关于分片数量
分片数量太少,不利于后期扩展,因为索引的分片数量是一开始设置的,不能修改,集群节点最大数量为分片总数量
分片数量太多,影响性能,因为需要给副本分片同步数据
关于集群颜色
如果索引的所有 primary shard 和 replica shard 都是正常的,则集群是绿色的。
如果索引存在某个 replica shard 不正常,则集群是黄色的。
如果某因存在某个 primary shard 不正常,则集群是红色。
二、扩容
扩容包括垂直扩容和水平扩容
垂直扩容:直接换更强的机器,比如之前内存16GB 1TB 现在换成 32 GB 10TB
水平扩容:往集群里添加更多普通的机器来分担压力
一般采用的是水平扩容,索引创建时,指定了分片数量是不能修改的。比如设置了15个分片(包括5个primary shard和10个replica shard),水平扩容最多支持15个机器。如果还需要扩容更多,可以创建新的索引,设置更多的分片然后把数据导入过去。
三、容错机制
所谓容错机制,就是当集群里一台机器挂了,系统数据不丢失,能一定程度上正常使用。
这里以某个 primary shard 所在的机器挂了为例。
1、第一步:选举一台机器当Master
其他正常的机器会选举一台机器当Master,可以选自己
2、第二步:将 replica shard 提升为 primary shard
Master 把故障的 primary shard 对应的 replica shard 的其中一个提升为 primary shard
3、第三步:重启故障机
重启机器后,该节点充当 replica shard 角色,会把所有缺失的数据同步过来
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏