Snitch决定了节点属于哪个数据中心和机架。Snitch通知Cassandra网络拓扑以便请求被有效的路由,并且允许Cassandra在服务器增加到数据中心或机架的时候能够分发副本。特别的,复制策略如何放置副本是基于新snitch提供的信息。Cassandra不会把副本放到一个机架里面(如果机架断电,那就over了)。
监控从大量副本读取数据的性能和选择最优的副本是基于这些历史条件的。默认情况下,所有的snitch也使用动态的snitch层监控读的延时,并且,在可能的情况下,不路由请求低性能的节点。动态snitch是默认启用的,这个也是大多数情况推荐的。
这个选项是只有一个数据中心的时候才能用。默认情况下,SimpleSnitch是不知道数据中心和机架信息的。如果要用的话,在定义keyspace的时候就需要使用SimpleStrategy并指定复制因子。
这是通过机架或数据中心的IP来决定节点的位置。
它也是通过机架或数据中心决定节点的位置。这个就需要自己配置cassandra-topology.properties。如果你的IP没有规则或者有 复杂的复制增加需求就可以使用这个snitch。这个snitch需要你在cassandra-topology.properties定义每个节点(有 点麻烦)。
这个snitch在新增节点的时候会通过gossip自动更新每个节点。
其他还有EC2Snitch,EC2MultiRegionSnitch,GoogleCloudSnitch,CloudstackSnitch等,由于在外部共有云上,对此暂时不做研究。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。