Cassandra如何选择协调器节点和复制节点?

Nuw*_*ana 10 cassandra nosql

Cassandra客户端如何选择协调器节点?协调器节点是否存储客户端在复制之前发送的数据?

小智 12

协调器由驱动程序根据您设置的策略选择.常见策略是DCAwareRoundRobinPolicy和TokenAware Policy.

对于DCAwareRoundRobinPolicy,驱动程序根据其循环策略选择协调节点.在此处查看更多信息:http://docs.datastax.com/en/drivers/java/2.1/com/datastax/driver/core/policies/DCAwareRoundRobinPolicy.html

对于TokenAwarePolicy,它选择一个具有被查询数据的协调器节点 - 以减少"跳数"和延迟.更多信息:http://docs.datastax.com/en/drivers/java/2.1/com/datastax/driver/core/policies/TokenAwarePolicy.html

最佳实践是将策略包装起来,以便在存在问题时存在主要和次要策略.有关更多信息,请参见上面的链接.


Aar*_*ron 9

协调器节点通常由考虑"网络距离"的算法选择.任何节点都可以充当协调器,并且最初请求将被发送到您的驱动程序知道的节点.但是一旦它连接并理解了集群的拓扑结构,它就可能变成一个"更接近"的协调器.

如果协调器最终成为负责数据令牌范围的节点之一,则协调器仅在本地(在写入时)存储数据.