【发布时间】:2023-03-19 01:04:01
【问题描述】:
我通过了Is there a way to see token ranges for each node in cassandra which uses vnodes?。在这个实现中,我们获取所有主机并获取这些单独主机中的令牌范围,以获取所有节点上的所有令牌范围。
但是,就我而言,我使用的是以下代码:
public static synchronized List<Object[]> getTokenRangesAcrossNodes(
final String node, final Integer port, final String userName, final String password) {
if (cluster == null) {
connect(node, port, userName, password);
}
Metadata metadata = cluster.getMetadata();
return unwrapTokenRanges(new ArrayList<>(metadata.getTokenRanges()));
}
在上面的connect() 函数node 有所有逗号分隔的cassandra 主机字符串,我使用Cluster.builder().addContactPoints() 创建会话。
我的问题是:
-
metadata.getTokenRanges()是否提供所有主机的所有令牌范围?还是我需要获取所有主机并获取每个主机的令牌范围? - 跨所有节点获取令牌范围是否不同于给定
keyspace的令牌范围?
Cassandra 版本:3.*
【问题讨论】:
标签: cassandra datastax-enterprise cassandra-3.0