如何监控 Follower 是否与 Leader 同步(因果集群)
要监控 Follower 是否与其 Leader 同步,或了解其落后多少,可以检查 Leader 和 Follower 的**最后提交的事务 ID**。
最后提交的事务 ID 可以通过以下方式之一进行评估
-
从 Neo4j 浏览器
-
通过 Neo4j 指标
-
通过 JMX MBean
1. 检查 Neo4j Web 界面中的最后事务 ID
从 Neo4j 浏览器
-
键入
:sysinfo
并按 Enter 键 -
在“事务”框架中,找到参数“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 MBean 检查最后提交的事务 ID
请检查
-
LastCommittedTxId
如果您愿意,可以使用 curl 执行此操作
$ curl -v http://localhost:7474/db/manage/server/jmx/domain/org.neo4j/instance%3Dkernel%230%2Cname%3DTransactions
有关支持的 Neo4j JMX MBean 以及如何以编程方式或通过 JConsole 连接到 JMX 监控程序的更多信息,请参阅 https://neo4j.ac.cn/docs/java-reference/current/jmx-metrics/ |
确定 Follower 落后于 Leader 的程度
要确定 Follower 落后于 Leader 的程度,您可以比较 Leader 和 Follower 的最后提交的事务 ID(以任何上述方法评估)。
(Last Commited Transaction Id)_leader - (Last Commited Transaction Id)_follower
差异越大,Follower 落后越多(就已提交的事务而言)。由于数据传播取决于事务大小、并发性、硬件、网络延迟等多种因素的组合,因此实际上不可能将所有这些因素关联到一个时间单位。
**重要说明**:Neo4j 的因果集群要求之一是保护数据。核心服务器通过使用 Raft 协议复制所有事务来实现此目的。这确保了数据在确认向最终用户应用程序提交事务之前安全且持久。在实践中,这意味着一旦集群中的大多数核心服务器( 您可以在此处阅读有关 Neo4j 的因果集群的更多信息:https://neo4j.ac.cn/docs/operations-manual/current/clustering/introduction/ |
此页面是否有帮助?