当客户端发送一次读请求时,大致会经过以下几个步骤

1、客户端发送一个请求过去,es的一个node接收到这个请求(随机的node),这个node就被es内部分配成coordinating node(协调节点)

2、coordinate node对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮询算法,在primary shard以及其所有replica中随机选择一个,让读请求负载均衡

3、接收请求的node处理实际读请求,将请示的document返回给coordinate node

4、coordinate node接收到实际处理读请求的node所返回的document后,将该document返回给客户端。

 
 

 
 

其他说明:

1、对于读请求,不是将所有的请求全部转发到primary shard上,而是部分在primary shard 上,一部分在replica shard 上,这样可以让服务器达到负载均衡。

2、coordinate node对读请求的document进行路由分发之后就知道这个document在那个shard中。

3、round-robin随机轮询算法会尽量让各个parimary shard和replica shard 承担数量相同的请求,从而达到负载均衡。

4、因为任意node都知道每个document在那个node上,所以对客户端来说,可以选择任意节点,所以在进行请求时并未指定节点,由es随机分配。

5、特殊情况:document如果还在建立索引过程中,可能只有primary shard有此document,任何一个replica shard都没有此document,此时可能会导致无法读取到document,但是document完成索引建立之后,primary shard和replica shard就都有了此document,就可以完成读取。

最新文章

  1. IE下get传中文乱码的问题完美解决方案
  2. GoLang之方法与接口
  3. ABBYY FineReader 12最新官方版下载
  4. AngularJs学习笔记--bootstrap
  5. USACO Section 3.3: A Game
  6. 用shell求两个文件的差集
  7. hdu1753I Hate It(线段树)
  8. 【BZOJ】【1086】 【SCOI2005】王室联邦
  9. Linux Mysql 权限相关信息 来源于网络
  10. POJ 3311---Hie with the Pie(状压DP)
  11. 【Linux】-NO.160.Linux.1 -【升级Centos7】
  12. 【转】vue项目打包部署——nginx代理访问
  13. 潭州课堂25班:Ph201805201 WEB 之 jQuery 第七课 (课堂笔记)
  14. Docker 镜像加速器
  15. 权力的游戏第七季/全集Game of Thrones迅雷下载
  16. HDU 3435 A new Graph Game(最小费用最大流)&HDU 3488
  17. Excel 信息对比_数组版
  18. 4245: [ONTAK2015]OR-XOR
  19. 使用Python 2.7实现的垃圾短信识别器
  20. php get_magic_quotes_gpc()

热门文章

  1. HDU 3718 Similarity(KM最大匹配)
  2. opencv源代码分析之二:cvhaartraining.cpp
  3. visual studio2013 C++查看对象布局
  4. rk3288对于parameter参数文件的解析处理【转】
  5. Android 系统开机logo的修改【转】
  6. SVM最通俗的解读
  7. B. Jeff and Periods(cf)
  8. Python 35 进程间的通信(IPC机制)、生产者消费者模型
  9. ROS-TF-Time
  10. [SGU 199] Beautiful People