3个节点集群,RF为3,意味着每个节点都有所有的数据。一致性是one.所以当查询节点-1上的一些数据时,理想的情况是节点-1拥有所有的数据,它应该能够完成我的查询。
但是当我使用'tracing on'检查我的查询是如何运行的,它显示它也连接到节点-2,根据我的理解,这是不需要的。
我是否遗漏了什么?先谢谢你。
编辑了 ::
添加了 追踪 "的输出.从图中可以看出,节点10.101.201.3已经联系了10.101.201.4。
3个节点集群,RF为3,意味着每个节点都拥有所有的数据。
每个节点拥有100%的数据,并不意味着每个节点拥有100%的令牌范围。 3个节点集群中的token范围将被平均分配,每个节点约占33%。
简而言之。node-1
可 有 所有的数据,但它只是。主要 负责其中的33%。 当分区密钥被哈希时,查询很可能被指向了 node-2
因为它 主要 负责该分区密钥......尽管其他节点包含二级和三级副本。
cqlsh。 如果我从应用代码中运行查询,这是否会改变?
是的,因为指定的负载均衡策略(在应用程序代码中配置)也会影响这种行为。