【Elastic Search权威指南 读书小记4】ES之主从同步

有道云笔记:https://note.youdao.com/ynoteshare1/index.html?id=682ce6287c26572497e56cc1967b9ba5&type=note

路由文档到分片

shard = hash(routing) % number_of_primary_shards

routing 值是一个任意字符串,它默认是 _id 但也可以自定义。这个 routing 字符串通过哈

希函数生成一个数字,然后除以主切片的数量得到一个余数(remainder),余数的范围永远

00是 0 到 number_of_primary_shards - 1 ,这个数字就是特定文档所在的分片

与之类似的redis集群则是用crc16配合算法决定数据归属槽,crc16(key)&16383

数据的主从同步

1. 客户端给 Node 1 发送新建、索引或删除请求。

2. 节点使用文档的 _id 确定文档属于分片 0 。它转发请求到 Node 3 ,分片 0 位于这个节

点上。

3. Node 3 在主分片上执行请求,如果成功,它转发请求到相应的位于 Node 1 和 Node 2 的

复制节点上。当所有的复制节点报告成功, Node 3 报告成功到请求的节点,请求的节点

再报告给客户端。

默认replication为sync,同步复制,可以通过修改参数实现一步。不过async 复制

可能会因为在不等待其它分片就绪的情况下发送过多的请求而使Elasticsearch过载。

检索文档

对于读请求,为了平衡负载,请求节点会为每个请求选择不同的分片——它会循环所有分片

副本。

可能的情况是,一个被索引的文档已经存在于主分片上却还没来得及同步到复制分片上。这

时复制分片会报告文档未找到,主分片会成功返回文档。一旦索引请求成功返回给用户,文

档则在主分片和复制分片都是可用的

自带负载均衡,平衡检索。不过在复制分片同步数据之前会返回未找到。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值