我们知道es中保存数据的时候是有主分片和副本分片的,那么副本分片的作用有哪些呢?
1.作为备份,防止主分片崩溃
2.分担查询请求,请求会在主分片和副本分片之间均匀分布
第一点:主副本之前角色的切换如何发生的?
当主分片不可用时,es就会重新进行选举,把最新的副本分片提高到主分片的地位,这里es的master节点实现了主副本选举的逻辑,其实为何这里不像kafka一样直接使用zk去进行主副本的切换,而要自己实现一遍呢,感觉是重复造轮子.
说道第二点,那我们来回答这样一个疑问:两个连续的es查询请求拿到的结果有可能不一样吗?
答案是可能,因为主分片的数据和副本分片的数据不一定是完全一致的,类似数据库的主从一样,从库不一定和主库的数据是完全一致的