snitch有两个功能:
1. 它根据网络拓扑确定数据应该从哪个节点读或者向哪个节点写。
2. 尽量使不同的副本不分布在同一个机架上。
如果在集群已经存储数据后再改变snitch策略,则必须运行full repair,因为snitch决定实际的数据副本位于哪些节点。
共有3种snitch:
1.SimpleSnitch:这是默认方式,它不会尝试识别节点是否位于不同的机架或数据中心,可用于单数据中心的部署。这种情况下只有副本因子参数需要配置。
2.RackInferringSnitch:根据IP地址确定不同节点的网络位置,如下图所示。
3.PropertyFileSnitch:根据配置文件cassandra-topology.properties确定节点的网络分布。