3节点集群,rf为3意味着每个节点拥有所有的数据。一致性是其中之一。因此,当查询node-1上的一些数据时,理想情况下,由于node-1拥有所有数据,它应该能够完成我的查询。
但是,当我使用“tracing on”检查查询是如何运行的时,它显示它也连接到node-2,根据我的理解,这是不需要的。
我是不是漏了什么?提前谢谢。
编辑时间:
添加了“跟踪打开”的输出。从图中可以看出,节点10.101.201.3已经联系了10.101.201.4
3节点集群,rf为3意味着每个节点拥有所有的数据。一致性是其中之一。因此,当查询node-1上的一些数据时,理想情况下,由于node-1拥有所有数据,它应该能够完成我的查询。
但是,当我使用“tracing on”检查查询是如何运行的时,它显示它也连接到node-2,根据我的理解,这是不需要的。
我是不是漏了什么?提前谢谢。
编辑时间:
添加了“跟踪打开”的输出。从图中可以看出,节点10.101.201.3已经联系了10.101.201.4
1条答案
按热度按时间ippsafx71#
3节点集群,rf为3意味着每个节点拥有所有的数据。
仅仅因为每个节点都有100%的数据,并不意味着每个节点都有100%的令牌范围。一个3节点集群中的令牌范围将被平均分割,每个范围约占33%。
总之,
node-1
可能有所有的数据,但它只负责其中的33%。对分区键进行哈希运算时,查询很可能指向node-2
因为它主要负责分区密钥…尽管其他节点包含二级和三级副本。cqlsh公司。如果我从应用程序代码运行查询,这个值会改变吗?
是的,因为指定的负载平衡策略(在应用程序代码中配置)也会影响此行为。