【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过载。

检索文档

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

副本。

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Elasticsearch支持主从同步,也称为主备复制。主从同步是一种数据复制机制,其中一个节点(主节点)负责写入和查询数据,而其他节点(从节点)复制主节点的数据以提供读取操作和故障容错。 要设置主从同步,首先需要配置一个主节点和一个或多个从节点。主节点负责处理所有的写操作,并将数据复制到从节点上。从节点只能处理读操作,并且会自动从主节点同步最新的数据。 以下是配置主从同步的步骤: 1. 在elasticsearch.yml配置文件中,为每个节点指定一个唯一的集群名称和节点名称。确保所有节点都使用相同的集群名称。 2. 在主节点的配置文件中,设置`node.master: true`和`node.data: true`,这将使其成为主节点并存储数据。 3. 在从节点的配置文件中,设置`node.master: false`和`node.data: true`,这将使其成为从节点只负责数据复制。 4. 在每个节点的配置文件中,设置`discovery.seed_hosts`为您在集群中使用的所有节点的IP地址或主机名。 5. 启动所有节点,并确保它们都能够连接到彼此。 一旦所有节点都运行,并且在集群中建立了连接,主节点将开始复制数据到从节点。您可以使用Elasticsearch提供的API或插件来验证主从同步是否正常工作。 请注意,主从同步只提供了读取操作的负载均衡和故障容错,并不适用于高可用性或自动故障转移。如果主节点发生故障,您需要手动将一个从节点提升为新的主节点。 希望这个回答能够帮到您!如果您还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值