ElasticSearch:如何检查文档来自/去往哪个节点/副本?

微控制器

假设我有5个数据节点。然后,我保存一个Person文档。现在有几个问题:

  1. 如何找到保存的文档到哪个节点?

  2. 将一个Person文档保存到具有两个副本的节点后,如何查询此Person信息并获取信息,得出的答案来自哪个副本/节点?

  3. 如何检查一个节点的两个副本中文档的可用速度?

编辑

用例如下:一般情况下,如何在主分片中写入新数据但数据尚未与副本同步的情况下确保一致性。同时,正在查询副本以获取在查询副本时仅存在于主分片上的新数据。我几乎想知道分布式阅读文档最后一段所描述的情况一致性的细节===>,但是另一方面,该文档说到查询阶段,每个主数据库和副本数据库都被查询并建立优先级队列 然后将它们合并,因此,将基于协调节点上所有优先级队列中构建的全局排序结果集,将主要分片的结果形式包括在合并队列中。

  • 问题X那么,如果未将其复制到其余副本中,则是否会在搜索时返回主分片的独占文档?

换一种说法。我想确保我的分布式ES集群中的数据一致性。现在,我要测试是否会发生以下情况。假设我有一个包含5个节点的群集,并且数据仅放置到一个节点(例如,node2使用主分片)。在数据有时间复制到其余副本之前,我查询了这个新数据node3,理论上应该对此数据进行复制,但是node2在更改后还没有得到它因此,在这种情况下,node3即使已将新数据放置到“ node2”中,但针对请求新数据的查询也不会返回新数据。

  • 问题A)如果发生这种情况,如何控制复制阶段/状态,以便我可以判断复制是否完成?
  • 问题B)如何判断副本是否与主分区一致,以及副本处于什么状态(副本的数据与主分区一致或无关)?
  • 问题C)如果无法控制此复制流程和数据一致性,如何消除提交给的查询的潜在不一致node3
  • 问题D)如何观察将文档添加到主分片,而不将其存储在副本分片中的行为(例如,我可以减慢/自定义复制时间,还是可以其他方式测试此行为)?
安德烈·斯特凡(Andrei Stefan)

如何找到保存的文档到哪个节点?

更正确的问题是将文档保存到哪个分片上,因为分片可以在群集中移动。您可以使用_search_shardsAPI并提供文档的ID:

GET /index/type/_search_shards?routing=4

将一个Person文档保存到具有两个副本的节点后,如何查询此Person并获取信息,得出的答案来自哪个副本/节点?

我认为您不容易做到。您可以降低慢速日志的阈值,fetch在搜索请求的特定阶段检查慢速日志文件,以查看某个节点是否记录了该日志。如果您fetch在慢日志中找到,则意味着结果(如果仅一个文档)来自该节点的分片。

如何检查一个节点的两个副本中文档的可用速度?

您从运行索引操作获得的响应时间是包括对碎片的所有副本(主副本及其副本)进行索引的响应时间:https : //www.elastic.co/guide/en/elasticsearch/guide/ current / distrib-write.html#distrib-write

如果发生这种情况,我该如何控制复制阶段/状态,以便知道复制是否完成?

认为您可以尝试使用consistency: allhttps://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/docs-index_.html#index-consistency),这意味着只有所有其他分片都可以返回索引操作副本已将文档编入索引。但是我认为这不会停止在正确的时间对其中一个副本进行的查询,而该副本仍在从主索引编制文档的过程中。

我怎么知道副本是否与主分片一致,这很困难。

我认为,仅通过查询分片的那两个副本上的数据,您就可以查看副本是否未同步。

如果我无法控制此复制流程和数据一致性,如何消除潜在的不一致

如果您发现不一致,我相信唯一的选择是将副本计数设置为0(删除副本),然后再返回到初始值。基本上,从主数据库重新创建副本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我们如何确定应在Elasticsearch中将文档存储在哪个节点上?

来自分类Dev

如何检查我来自asp.net mvc的哪个动作

来自分类Dev

如何检查我来自asp.net mvc的哪个动作

来自分类Dev

Elasticsearch为索引分配主节点和副本节点

来自分类Dev

哪个节点应用于ElasticSearch的连接?

来自分类Dev

如何检查用户来自哪个集合/产品标签URL,然后在条件语句中使用它?

来自分类Dev

如何从Elasticsearch删除文档

来自分类Dev

如何检查哪个程序是重点?

来自分类Dev

如何检查单击了哪个<button>?

来自分类Dev

如何创建查询以检查给定字符串中包含哪个子字符串(来自 DB)?

来自分类Dev

如何通过检查特定字段来避免将重复文档插入Elasticsearch

来自分类Dev

是否可以找到文档位于哪个Elasticsearch分片上?

来自分类Dev

在git merge中如何分辨我的副本是哪个代码

来自分类Dev

如何知道哪个请求来自哪个会话python

来自分类Dev

如何分辨类型来自哪个模块?

来自分类Dev

如何找出包来自哪个存储库?

来自分类Dev

如何知道属性来自哪个类

来自分类Dev

如何识别XSL中哪个元素属于哪个节点

来自分类Dev

如何测试哪个节点先出现?

来自分类Dev

如何从节点本身检查 Kubernetes 节点的状态?

来自分类Dev

如何检查用户来自哪里?

来自分类Dev

如何设置Elasticsearch客户节点?

来自分类常见问题

如何停止/关闭Elasticsearch节点?

来自分类Dev

如何检查每个节点的Pod

来自分类Dev

如何在不重新启动服务的情况下将新节点副本添加到正在运行的Elasticsearch?

来自分类Dev

如何使用CMIS从露天仓库获取Word文档的翻译副本

来自分类Dev

如何制作SharePoint 2010文档库的工作副本?

来自分类Dev

如何以正常顺序打印WORD文档的多个副本

来自分类Dev

如何向每个用户提供中央集合中的文档副本

Related 相关文章

  1. 1

    我们如何确定应在Elasticsearch中将文档存储在哪个节点上?

  2. 2

    如何检查我来自asp.net mvc的哪个动作

  3. 3

    如何检查我来自asp.net mvc的哪个动作

  4. 4

    Elasticsearch为索引分配主节点和副本节点

  5. 5

    哪个节点应用于ElasticSearch的连接?

  6. 6

    如何检查用户来自哪个集合/产品标签URL,然后在条件语句中使用它?

  7. 7

    如何从Elasticsearch删除文档

  8. 8

    如何检查哪个程序是重点?

  9. 9

    如何检查单击了哪个<button>?

  10. 10

    如何创建查询以检查给定字符串中包含哪个子字符串(来自 DB)?

  11. 11

    如何通过检查特定字段来避免将重复文档插入Elasticsearch

  12. 12

    是否可以找到文档位于哪个Elasticsearch分片上?

  13. 13

    在git merge中如何分辨我的副本是哪个代码

  14. 14

    如何知道哪个请求来自哪个会话python

  15. 15

    如何分辨类型来自哪个模块?

  16. 16

    如何找出包来自哪个存储库?

  17. 17

    如何知道属性来自哪个类

  18. 18

    如何识别XSL中哪个元素属于哪个节点

  19. 19

    如何测试哪个节点先出现?

  20. 20

    如何从节点本身检查 Kubernetes 节点的状态?

  21. 21

    如何检查用户来自哪里?

  22. 22

    如何设置Elasticsearch客户节点?

  23. 23

    如何停止/关闭Elasticsearch节点?

  24. 24

    如何检查每个节点的Pod

  25. 25

    如何在不重新启动服务的情况下将新节点副本添加到正在运行的Elasticsearch?

  26. 26

    如何使用CMIS从露天仓库获取Word文档的翻译副本

  27. 27

    如何制作SharePoint 2010文档库的工作副本?

  28. 28

    如何以正常顺序打印WORD文档的多个副本

  29. 29

    如何向每个用户提供中央集合中的文档副本

热门标签

归档