Cassandra读取一致性是一个,但节点连接到另一个节点上

问题描述 投票:1回答:1

3个节点集群,RF为3,意味着每个节点都有所有的数据。一致性是one.所以当查询节点-1上的一些数据时,理想的情况是节点-1拥有所有的数据,它应该能够完成我的查询。

但是当我使用'tracing on'检查我的查询是如何运行的,它显示它也连接到节点-2,根据我的理解,这是不需要的。

我是否遗漏了什么?先谢谢你。

编辑了 ::

添加了 追踪 "的输出.从图中可以看出,节点10.101.201.3已经联系了10.101.201.4。

cassandra cassandra-3.0 cassandra-2.0 cqlsh cassandra-2.1
1个回答
1
投票

3个节点集群,RF为3,意味着每个节点都拥有所有的数据。

每个节点拥有100%的数据,并不意味着每个节点拥有100%的令牌范围。 3个节点集群中的token范围将被平均分配,每个节点约占33%。

简而言之。node-1 所有的数据,但它只是。主要 负责其中的33%。 当分区密钥被哈希时,查询很可能被指向了 node-2 因为它 主要 负责该分区密钥......尽管其他节点包含二级和三级副本。

cqlsh。 如果我从应用代码中运行查询,这是否会改变?

是的,因为指定的负载均衡策略(在应用程序代码中配置)也会影响这种行为。

© www.soinside.com 2019 - 2024. All rights reserved.