知识库

如何监控追随者是否与领导者(因果集群)同步

要监控从节点是否与其主节点同步,或了解其落后多少,可以检查主节点和从节点的 最近提交的事务 Id

最近提交的事务 Id 可以通过以下方式进行评估

  • 通过 Neo4j 浏览器

  • 通过 Neo4j 指标

  • 通过 JMX MBeans

1. 从 Neo4j Web 界面检查最近的事务 Id

通过 Neo4j 浏览器

  • 输入 :sysinfo 并回车

  • "Transactions" 窗格中,找到参数 "Last Tx Id"

您也可以按以下方式调用 dbms.queryJmx 过程

call dbms.queryJmx("org.neo4j:instance=kernel#0,name=Transactions") yield attributes
return attributes["LastCommittedTxId"]

2. 通过 Neo4j 指标检查最近提交的事务 Id

假设 Neo4j 的 CSV 指标已启用,您可以分析以下 CSV 文件:neo4j.transaction.last_committed_tx_id.csv

从 3.4 版起,指标默认已启用。如果您使用的是 3.4 之前的版本,需要在所有实例的 neo4j.conf 文件中启用指标。请参阅 /docs/operations-manual/current/monitoring/metrics/#metrics-enable 以了解如何操作。

3. 通过 JMX MBeans 检查最近提交的事务 Id

请检查

  • LastCommittedTxId

如果您愿意,可以使用 curl 来完成此操作

$ curl -v https://:7474/db/manage/server/jmx/domain/org.neo4j/instance%3Dkernel%230%2Cname%3DTransactions

有关受支持的 Neo4j JMX MBeans 以及如何以编程方式或通过 JConsole 连接到 JMX 监控的更多信息,请参阅 /docs/java-reference/current/jmx-metrics/

确定从节点相对于主节点的落后程度

要确定从节点相对于主节点的落后程度,您可以比较主节点和从节点的最近提交的事务 Id(可通过上述任一方法获取)。

(Last Commited Transaction Id)_leader - (Last Commited Transaction Id)_follower

差值越大,说明从节点落后越多(以已提交事务的数量计)。由于数据传播受事务大小、并发度、硬件、网络延迟等多种因素影响,几乎不可能将其全部映射为时间单位。

重要提示:Neo4j 因果集群的一个要求是确保数据安全。核心服务器通过 Raft 协议复制所有事务来实现此目的。这确保数据在向最终用户应用确认事务提交之前已安全持久化。实际上,这意味着一旦集群中多数核心服务器(N/2+1)接受了事务,就可以安全地向最终用户应用确认提交。此安全要求会影响写入延迟,因此在监控和判断是否存在问题时请务必考虑这一点。

您可以在此处了解更多关于 Neo4j 因果集群的信息:/docs/operations-manual/current/clustering/introduction/

© . This site is unofficial and not affiliated with Neo4j, Inc.