gpt4 book ai didi

scylla - 是否有用于 scylla nodetool 的 API?

转载 作者:行者123 更新时间:2023-12-04 10:22:37 27 4
gpt4 key购买 nike

是否有 nodetool 的 API ?特别是 nodetool tablestats
我看到有https://github.com/scylladb/scylla/tree/master/api/api-doc .这是寻找 API 的正确位置吗?

最佳答案

Scylla 服务器确实有一个 REST API,它的文档位于您指向的 URL 中。启动 Scylla 服务器时也可以找到 Swagger UI:https://docs.scylladb.com/operating-scylla/rest/ .

但是,请注意 nodetool ,例如,不直接使用 API。相反,它与 Scylla JMX 代理通信,这是一个实现与 Cassandra 兼容的 JMX API 的 Java 进程。您仍然可以直接使用 REST API,但您必须自己弄清楚 JMX 操作和 REST API 之间的映射。

对于像 nodetool tablestats 这样的东西,第一步是检查 nodetool 使用什么 JMX API:

https://github.com/scylladb/scylla-tools-java/blob/master/src/java/org/apache/cassandra/tools/nodetool/TableStats.java

该命令委托(delegate)给 TableStatsHolder 类:

https://github.com/scylladb/scylla-tools-java/blob/master/src/java/org/apache/cassandra/tools/nodetool/stats/TableStatsHolder.java#L117

它使用 ColumnFamilyStoreMBean JMX API 来查询表统计信息。

您可以通过找到 ColumnFamilyStore 类(不带 MBean 后缀)在 scylla-jmx 项目中找到 JMX API 的实现:

https://github.com/scylladb/scylla-jmx/blob/master/src/main/java/org/apache/cassandra/db/ColumnFamilyStore.java

从该类中,您可以看到,例如,ColumnFamilyStore.getSSTableCountPerLevel()方法委托(delegate)给 column_family/sstables/per_level/<table name> REST API URL。

关于scylla - 是否有用于 scylla nodetool 的 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59221137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com