美文网首页
Elasticsearch---document存放时的路由原理

Elasticsearch---document存放时的路由原理

作者: 缓慢移动的蜗牛 | 来源:发表于2017-03-31 21:49 被阅读0次

路由

每次创建一个document的时候,这个document会放到那个shard哩?

路由算法: shard=hash(routing)%number_of_primary_shards
解释:每次增删改查一个document的时候,都会带过来一个routing number,这个值默认就是_id,即 routing=_id
算出这个routing的hansh值,然后和primary shard的总数求余,算出的值,就是这个document的存放的位置(存放至某个primay shard)。

这个routing的值,默认是_id,但我们也可以手动指定
例如发送求的时候

PUT /index/type/id?routing=user_id

primay shard数量不可变的原因就是因为这个路由算法
hash(routing)%number_of_primary_shards 一般是不等于 hash(routing)%(number_of_primary_shards+n)

增删改

增删改的请求只能由primary shard处理的

增加一个document举例

  1. 客户端会选择一个node(节点)发送请求,这个node就是coordinate node(协调节点)
  2. coordinate node,对document进行路由(假设计算出的prmary shard 在第n个node),将请求转发到对应的node的primary shard上处理(假设为node A)
  3. node A 上的primary shard 处理这个请求,然后再将数据同步到replica shard
  4. coordinae node,如果发现primary node 和所有replica node都搞定之后,就返回响应结果给客户端
新增的过程,删除和修改类似

查询

  1. 客户端发送请求到任意一个node,这个node就是coordinatenode
  2. coordinate node对document进行路由,将请求转发到对应的node,此时会使用round-robin随机轮询算法,在paimary shard以及所有replica中随机选择一个,让读请求负载均衡
  3. 接收到请求的node返回document给coordinate node
  4. coordinate node返回document给客户端

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

相关文章

  • Elasticsearch---document存放时的路由原理

    路由 每次创建一个document的时候,这个document会放到那个shard哩? 路由算法: shard=h...

  • 组件化2.路由框架的设计

    路由框架原理 路由框架是为了实现组件之间的通信 路由框架维护了一个分组的路由表路由表中存放了路由地址和路由信息路由...

  • Django路由

    一、路由 1、路由的定义方式1.1 所有工程的所有路由存放在主路由文件中1.2 在各个子应用中定义自己的路由文件,...

  • Vue核心插件之路由模式

    单页面应用的路由模式:哈希模式和history.vue路由原理:哈希模式(核心:锚点) 原理 安装使用(路由是以插...

  • 网上看到一个路由的实现

    网上看到一个精致的路由的实现,大概原理是:轮询路由的状态,在改变的时候,当match到对应的预设好的路由时,执行其...

  • 前端路由

    路由是什么 在网络原理中,路由指的是分组从源到目的地时,决定端到端路径的网络范围的进程,做成硬件叫路由器,在路由器...

  • vue-router

    前端路由的基本原理 vue-router的基本使用 命名路由 路由参数 嵌套路由

  • 权限系统的思想

    用户登录,将接口返回token存储,跳转到‘/’,使用路由拦截器,如果token能取值,拼接路由,并把动态路由存放...

  • rabbitMq-路由模式direct-java

    工作原理:每一个对列都有自己的路由key,当生产者发送消息时,都会携带一个路由key,这时,会将消息发往路由key...

  • vue - 路由模式

    1 路由的基本概念与原理 路由的本质就是对应关系; 在开发中, 路由分为前端路由和后端路由. 1.1 前端路由 概...

网友评论

      本文标题:Elasticsearch---document存放时的路由原理

      本文链接:https://www.haomeiwen.com/subject/wjzyottx.html