2

有没有办法查看 cassandra 中使用 vnodes 的每个节点的令牌范围?我不想看到通过发出 nodetool ring 获得的每个节点的令牌。我只想查看每个使用 vnode 的节点的令牌管理员。

4

1 回答 1

2

给定节点的令牌范围将是键空间拓扑的函数。

以编程方式,您可以使用 java 驱动程序使用Cluster.getMetadata().getTokenRanges(keyspace, host)。以下代码示例显示了按主机检索键空间的所有令牌范围:

String keyspace = "mykeyspace";
for(Host host : cluster.getMetadata().getAllHosts()) {
    Set<TokenRange> hostRanges = cluster.getMetadata().getTokenRanges(keyspace, host);
}

此外,您可以通过使用 JMX 到 Cassandra 节点来解决此问题org.apache.cassandra.db:type=StorageService#getRangeToEndpointMap|getRangeToRpcaddressMap(String)

于 2016-01-13T16:34:06.847 回答