1. 首页
  2. 面试宝典
  3. 微服务篇
  4. ES面试题

ES面试题

1、ES的分布式架构原理

ES会将数据分A、B、C三个机器的ES进程中,会选举一个ES进程作为Master节点,用来管理和协调其他ES进程,为了保证数据的可靠性,ES的每个shard是分为primary和replica两种的shard,并且不再同一台机器上,如果出现宕机的情况,会自动切换shard的角色来保证可用

2、谈谈ES的写入原理

1.客户端选择一个 node 发送请求过去,这个 node 就是协调节点。
2.协调节点对document 进行路由,将请求转发给对应的 node(有 primary shard)。
3.实际的 node 上的 primary shard 处理请求,然后将数据同步到 replica node。
4.协调节点如果发现 primary node 和所有 replica node 都搞定之后,就返回响应结果给客户端

3、ES的查询原理原理

可以通过 doc id 来查询,会根据 doc id 进行 hash,判断出来当时把 doc id 分配到了哪个 shard 上面去,从那个 shard 去查询。

1、客户端发送请求到任意一个 node,成为 协调节点。
2、协调节点 对 doc id 进行哈希路由,将请求转发到对应的 node,此时会使用 round-robin 随机轮询算法,在 primary 3、shard 以及其所有 replica 中随机选择一个,让读请求负载均衡。
4、接收请求的 node 返回 document 给 协调节点。
5、协调节点 返回 document 给客户端。

发表评论