如何监控追随者是否与领导者(因果集群)同步
要监控从节点是否与其主节点同步,或了解其落后多少,可以检查主节点和从节点的 最近提交的事务 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 之前的版本,需要在所有实例的 |
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 协议复制所有事务来实现此目的。这确保数据在向最终用户应用确认事务提交之前已安全持久化。实际上,这意味着一旦集群中多数核心服务器( 您可以在此处了解更多关于 Neo4j 因果集群的信息:/docs/operations-manual/current/clustering/introduction/ |
此页面有帮助吗?